సమయ నవీకరణ సిస్టమ్ పనితీరును ప్రభావితం చేస్తుంది. అక్కడ ఏమి జరుగుతోంది మరియు దాని గురించి ఏమి చేయాలి - కథనాన్ని చదవండి.
నేను నా హోమ్ కంప్యూటర్లో Linuxని అప్డేట్ చేసినప్పుడల్లా, నేను కొన్ని సమస్యలను పరిష్కరించాల్సి ఉంటుంది. సంవత్సరాలుగా, ఇది ఒక అలవాటుగా మారింది: నేను నా ఫైల్లను బ్యాకప్ చేస్తాను, సిస్టమ్ను తుడిచివేస్తాను, మొదటి నుండి ప్రతిదీ ఇన్స్టాల్ చేస్తాను, నా ఫైల్లను పునరుద్ధరించండి, ఆపై నాకు ఇష్టమైన అప్లికేషన్లను మళ్లీ ఇన్స్టాల్ చేస్తాను. నాకు సరిపోయేలా సిస్టమ్ సెట్టింగ్లను కూడా మార్చుకుంటాను. కొన్నిసార్లు చాలా సమయం పడుతుంది. మరియు ఇటీవల నాకు ఈ తలనొప్పి అవసరమా అని నేను ఆశ్చర్యపోయాను.
సమయానికి Linuxలోని ఫైల్ల కోసం మూడు టైమ్స్టాంప్లలో ఒకటి (దీని తర్వాత మరిన్ని). ప్రత్యేకించి, ఇటీవలి Linux సిస్టమ్లలో సమయ వ్యవధిని నిలిపివేయడం ఇంకా మంచి ఆలోచన కాదా అని నేను ఆలోచిస్తున్నాను. ఫైల్ యాక్సెస్ చేయబడిన ప్రతిసారీ సమయం నవీకరించబడుతుంది కాబట్టి, ఇది సిస్టమ్ పనితీరుపై గణనీయమైన ప్రభావాన్ని చూపుతుందని నేను గ్రహించాను.
నేను ఇటీవల Fedora 32కి అప్గ్రేడ్ చేసాను మరియు అలవాటు లేకుండా, సమయానుకూలంగా నిలిపివేయడం ద్వారా ప్రారంభించాను. నేను అనుకున్నాను: నాకు ఇది నిజంగా అవసరమా? నేను ఈ సమస్యను అధ్యయనం చేయాలని నిర్ణయించుకున్నాను మరియు నేను తవ్వినది ఇదే.
ఫైల్ టైమ్స్టాంప్ల గురించి కొంచెం
దీన్ని గుర్తించడానికి, మీరు ఒక అడుగు వెనక్కి తీసుకోవాలి మరియు Linux ఫైల్ సిస్టమ్ల గురించి మరియు కెర్నల్ టైమ్స్టాంప్ ఫైల్లు మరియు డైరెక్టరీల గురించి కొన్ని విషయాలను గుర్తుంచుకోవాలి. మీరు ఆదేశాన్ని అమలు చేయడం ద్వారా ఫైల్లు మరియు డైరెక్టరీల చివరి సవరించిన తేదీని చూడవచ్చు ls -l (పొడవైన) లేదా ఫైల్ మేనేజర్లో దాని గురించిన సమాచారాన్ని చూడటం ద్వారా. కానీ తెర వెనుక, Linux కెర్నల్ ఫైల్లు మరియు డైరెక్టరీల కోసం అనేక టైమ్స్టాంప్లను ట్రాక్ చేస్తుంది:
- ఫైల్ చివరిగా ఎప్పుడు సవరించబడింది (mtime)
- ఫైల్ లక్షణాలు మరియు మెటాడేటా చివరిసారిగా ఎప్పుడు మార్చబడ్డాయి (ctime)
- ఫైల్ చివరిగా ఎప్పుడు యాక్సెస్ చేయబడింది (సమయం)
- మీరు ఆదేశాన్ని ఉపయోగించవచ్చు రాష్ట్రఫైల్ లేదా డైరెక్టరీ గురించిన సమాచారాన్ని వీక్షించడానికి. ఇక్కడ ఫైల్ ఉంది / Etc / fstab నా టెస్ట్ సర్వర్లలో ఒకదాని నుండి:
$ stat fstab
File: fstab
Size: 261 Blocks: 8 IO Block: 4096 regular file
Device: b303h/45827d Inode: 2097285 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2019-04-25 21:10:18.083325111 -0500
Modify: 2019-05-16 10:46:47.427686706 -0500
Change: 2019-05-16 10:46:47.434686674 -0500
Birth: 2019-04-25 21:03:11.840496275 -0500
నేను సిస్టమ్ను ఇన్స్టాల్ చేసినప్పుడు ఈ ఫైల్ ఏప్రిల్ 25, 2019న సృష్టించబడిందని మీరు ఇక్కడ చూడవచ్చు. నా ఫైల్ / Etc / fstab చివరిగా మే 16, 2019న సవరించబడింది మరియు అదే సమయంలో అన్ని ఇతర లక్షణాలు మార్చబడ్డాయి.
నేను కాపీ చేస్తే / Etc / fstab కొత్త ఫైల్కి, అది కొత్త ఫైల్ అని సూచించడానికి తేదీలు మారతాయి:
$ sudo cp fstab fstab.bak
$ stat fstab.bak
File: fstab.bak
Size: 261 Blocks: 8 IO Block: 4096 regular file
Device: b303h/45827d Inode: 2105664 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:53:58.443659981 -0500
Birth: 2020-05-12 17:53:58.442659986 -0500
కానీ నేను ఫైల్ యొక్క కంటెంట్లను మార్చకుండా పేరు మార్చినట్లయితే, Linux ఫైల్ సవరించబడిన సమయాన్ని మాత్రమే నవీకరిస్తుంది:
$ sudo mv fstab.bak fstab.tmp
$ stat fstab.tmp
File: fstab.tmp
Size: 261 Blocks: 8 IO Block: 4096 regular file
Device: b303h/45827d Inode: 2105664 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:54:24.576508232 -0500
Birth: 2020-05-12 17:53:58.442659986 -0500
కొన్ని Unix ప్రోగ్రామ్లకు ఈ టైమ్స్టాంప్లు చాలా ఉపయోగకరంగా ఉంటాయి. ఉదాహరణకు, biff అనేది మీ ఇమెయిల్లో కొత్త సందేశం ఉన్నప్పుడు మీకు తెలియజేసే ప్రోగ్రామ్. ఈ రోజుల్లో చాలా తక్కువ మంది ఉపయోగిస్తున్నారు
మీరు మీ ఇన్బాక్స్లో కొత్త మెయిల్ని కలిగి ఉంటే ప్రోగ్రామ్కి ఎలా తెలుస్తుంది? biff చివరిగా సవరించిన సమయాన్ని (ఇన్బాక్స్ ఫైల్ కొత్త ఇమెయిల్ సందేశంతో నవీకరించబడినప్పుడు) మరియు చివరి యాక్సెస్ సమయాన్ని (మీరు మీ ఇమెయిల్ని చివరిసారి చదివినప్పుడు) పోల్చింది. యాక్సెస్ కంటే ఆలస్యంగా మార్పు జరిగితే, కొత్త లేఖ వచ్చిందని biff అర్థం చేసుకుంటుంది మరియు దాని గురించి మీకు తెలియజేస్తుంది. మట్ ఇమెయిల్ క్లయింట్ కూడా అదే విధంగా పనిచేస్తుంది.
మీరు ఫైల్ సిస్టమ్ వినియోగ గణాంకాలు మరియు ట్యూన్ పనితీరును సేకరించాలంటే చివరి యాక్సెస్ టైమ్స్టాంప్ కూడా ఉపయోగకరంగా ఉంటుంది. సిస్టమ్ నిర్వాహకులు ఏ వస్తువులు యాక్సెస్ చేయబడుతున్నారో తెలుసుకోవాలి కాబట్టి వారు ఫైల్ సిస్టమ్ను తదనుగుణంగా కాన్ఫిగర్ చేయవచ్చు.
కానీ చాలా ఆధునిక ప్రోగ్రామ్లకు ఇకపై ఈ లేబుల్ అవసరం లేదు, కాబట్టి దీన్ని ఉపయోగించకూడదనే ప్రతిపాదన ఉంది. 2007లో, లైనస్ టోర్వాల్డ్స్ మరియు అనేక ఇతర కెర్నల్ డెవలపర్లు పనితీరు సమస్య విషయంలో కొంతకాలం చర్చించారు. Linux కెర్నల్ డెవలపర్ ఇంగో మోల్నార్ atime మరియు ext3 ఫైల్ సిస్టమ్ గురించి ఈ క్రింది విషయాన్ని తెలియజేశారు:
"ఇద్దరు నిజమైన వినియోగదారులు ఉన్నప్పటికీ, స్థిరమైన సమయ నవీకరణల కారణంగా ప్రతి Linux డెస్క్టాప్ మరియు సర్వర్ గుర్తించదగిన I/O పనితీరు క్షీణతకు గురవుతుండడం చాలా వింతగా ఉంది: tmpwatch [ఇది ctimeని ఉపయోగించడానికి కాన్ఫిగర్ చేయబడుతుంది, కాబట్టి ఇది పెద్ద సమస్య కాదు] మరియు కొన్ని బ్యాకప్ సాధనాలు."
కానీ ప్రజలు ఇప్పటికీ ఈ లేబుల్ అవసరమైన కొన్ని ప్రోగ్రామ్లను ఉపయోగిస్తున్నారు. కాబట్టి సమయాన్ని తీసివేయడం వారి కార్యాచరణను విచ్ఛిన్నం చేస్తుంది. Linux కెర్నల్ డెవలపర్లు వినియోగదారు స్వేచ్ఛను ఉల్లంఘించకూడదు.
సోలమన్ యొక్క పరిష్కారం
Linux పంపిణీలలో అనేక అప్లికేషన్లు ఉన్నాయి మరియు అదనంగా, వినియోగదారులు వారి అవసరాలకు అనుగుణంగా ఇతర ప్రోగ్రామ్లను డౌన్లోడ్ చేసుకోవచ్చు మరియు ఇన్స్టాల్ చేయవచ్చు. ఇది ఓపెన్ సోర్స్ OS యొక్క ముఖ్య ప్రయోజనం. కానీ ఇది మీ ఫైల్ సిస్టమ్ పనితీరును ఆప్టిమైజ్ చేయడం కష్టతరం చేస్తుంది. రిసోర్స్-ఇంటెన్సివ్ కాంపోనెంట్లను తీసివేయడం వల్ల సిస్టమ్కు అంతరాయం కలగవచ్చు.
రాజీగా, Linux కెర్నల్ డెవలపర్లు కొత్త రిలేటైమ్ ఎంపికను ప్రవేశపెట్టారు, ఇది పనితీరు మరియు అనుకూలత మధ్య సమతుల్యతను సాధించడానికి ఉద్దేశించబడింది:
మునుపటి యాక్సెస్ సమయం ప్రస్తుత సవరణ లేదా స్థితి మార్పు సమయం కంటే తక్కువగా ఉంటే మాత్రమే atime నవీకరించబడుతుంది... Linux 2.6.30 నుండి, కెర్నల్ డిఫాల్ట్గా ఈ ఎంపికను ఉపయోగిస్తుంది (noatime పేర్కొనకపోతే)... అలాగే, Linux 2.6.30 నుండి. 1, ఫైల్ యొక్క చివరి యాక్సెస్ సమయం XNUMX రోజు కంటే ఎక్కువ పాతది అయితే ఎల్లప్పుడూ నవీకరించబడుతుంది.
ఆధునిక లైనక్స్ సిస్టమ్లు (2.6.30లో విడుదలైన Linux 2009 నుండి) ఇప్పటికే రిలేటైమ్ని ఉపయోగిస్తున్నాయి, ఇది నిజంగా పెద్ద పనితీరును పెంచేలా చేస్తుంది. అంటే మీరు ఫైల్ను కాన్ఫిగర్ చేయనవసరం లేదు / Etc / fstab, మరియు రిలేటైమ్తో మీరు డిఫాల్ట్పై ఆధారపడవచ్చు.
నోటైమ్తో సిస్టమ్ పనితీరును మెరుగుపరచడం
కానీ మీరు గరిష్ట పనితీరును పొందడానికి మీ సిస్టమ్ను ట్యూన్ చేయాలనుకుంటే, సమయాన్ని నిలిపివేయడం ఇప్పటికీ సాధ్యమే.
పనితీరు మార్పు చాలా వేగవంతమైన ఆధునిక డ్రైవ్లలో (NVME లేదా ఫాస్ట్ SSD వంటివి) గుర్తించబడకపోవచ్చు, కానీ అక్కడ స్వల్ప పెరుగుదల ఉంది.
మీరు సమయం అవసరమయ్యే సాఫ్ట్వేర్ను ఉపయోగించడం లేదని మీకు తెలిస్తే, ఫైల్లో నోటైమ్ ఎంపికను ప్రారంభించడం ద్వారా మీరు పనితీరును కొద్దిగా మెరుగుపరచవచ్చు /etc/fstab. దీని తర్వాత, కెర్నల్ ఎప్పటికప్పుడు అప్డేట్ చేయబడదు. ఫైల్సిస్టమ్ను మౌంట్ చేస్తున్నప్పుడు noatime ఎంపికను ఉపయోగించండి:
/dev/mapper/fedora_localhost--live-root / ext4 defaults,noatime,x-systemd.device-timeout=0 1 1
UUID=be37c451-915e-4355-95c4-654729cf662a /boot ext4 defaults,noatime 1 2
UUID=C594-12B1 /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/fedora_localhost--live-home /home ext4 defaults,noatime,x-systemd.device-timeout=0 1 2
/dev/mapper/fedora_localhost--live-swap none swap defaults,x-systemd.device-timeout=0 0 0
మీరు తదుపరిసారి రీబూట్ చేసినప్పుడు మార్పులు ప్రభావం చూపుతాయి.
ప్రకటనల హక్కులపై
మీ వెబ్సైట్ని హోస్ట్ చేయడానికి మీకు సర్వర్ అవసరమా? మా కంపెనీ అందిస్తుంది
మూలం: www.habr.com