రాస్ప్బెర్రీ పై పనితీరు: ZRAM జోడించడం మరియు కెర్నల్ పారామితులను మార్చడం

కొన్ని వారాల క్రితం నేను పోస్ట్ చేసాను పైన్‌బుక్ ప్రో సమీక్ష. రాస్ప్బెర్రీ పై 4 కూడా ARM-ఆధారితమైనది కాబట్టి, మునుపటి కథనంలో పేర్కొన్న కొన్ని ఆప్టిమైజేషన్లు దీనికి చాలా అనుకూలంగా ఉంటాయి. నేను ఈ ఉపాయాలను భాగస్వామ్యం చేయాలనుకుంటున్నాను మరియు మీరు అదే పనితీరు మెరుగుదలలను అనుభవిస్తున్నారా అని చూడాలనుకుంటున్నాను.

మీలో రాస్ప్బెర్రీ పైని ఇన్‌స్టాల్ చేసిన తర్వాత ఇంటి సర్వర్ గది ర్యామ్ కొరత ఉన్న క్షణాల్లో అది చాలా స్పందించకుండా స్తంభించిపోయిందని నేను గమనించాను. ఈ సమస్యను పరిష్కరించడానికి, నేను ZRAMని జోడించాను మరియు కెర్నల్ పారామితులకు కొన్ని మార్పులు చేసాను.

రాస్ప్బెర్రీ పైలో ZRAMని సక్రియం చేస్తోంది

రాస్ప్బెర్రీ పై పనితీరు: ZRAM జోడించడం మరియు కెర్నల్ పారామితులను మార్చడం

ZRAM RAMలో /dev/zram0 (లేదా 1, 2, 3, మొదలైనవి) పేరుతో ఒక బ్లాక్ నిల్వను సృష్టిస్తుంది. అక్కడ వ్రాసిన పేజీలు కుదించబడి మెమరీలో నిల్వ చేయబడతాయి. ఇది చాలా వేగంగా I/Oని అనుమతిస్తుంది మరియు కంప్రెషన్ ద్వారా మెమరీని కూడా ఖాళీ చేస్తుంది.

రాస్ప్బెర్రీ పై 4 1, 2, 4 లేదా 8 GB RAMతో వస్తుంది. నేను 1GB మోడల్‌ని ఉపయోగిస్తున్నాను, కాబట్టి దయచేసి మీ మోడల్ ఆధారంగా సూచనలను సర్దుబాటు చేయండి. 1 GB ZRAMతో, డిఫాల్ట్ స్వాప్ ఫైల్ (నెమ్మదిగా!) తక్కువ తరచుగా ఉపయోగించబడుతుంది. నేను ఈ స్క్రిప్ట్‌ని ఉపయోగించాను zram-swap సంస్థాపన మరియు ఆటోమేటిక్ కాన్ఫిగరేషన్ కోసం.

పైన లింక్ చేసిన రిపోజిటరీలో సూచనలు అందించబడ్డాయి. సంస్థాపన:

git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh

మీరు కాన్ఫిగరేషన్‌ని సవరించాలనుకుంటే:

vi /etc/default/zram-swap

అదనంగా, మీరు ఇన్‌స్టాల్ చేయడం ద్వారా ZRAMని సక్రియం చేయవచ్చు zram-tools. మీరు ఈ పద్ధతిని ఉపయోగిస్తే, కాన్ఫిగరేషన్‌ను సవరించాలని నిర్ధారించుకోండి ఫైల్‌లో /etc/default/zramswap, మరియు సుమారు 1 GB ZRAMని ఇన్‌స్టాల్ చేయండి:

sudo apt install zram-tools

సంస్థాపన తర్వాత, మీరు క్రింది ఆదేశంతో ZRAM నిల్వ గణాంకాలను చూడవచ్చు:

sudo cat /proc/swaps
Filename				Type		Size	Used	Priority
/var/swap                               file		102396	0	-2
/dev/zram0                              partition	1185368	265472	5
pi@raspberrypi:~ $

ZRAM యొక్క మెరుగైన ఉపయోగం కోసం కెర్నల్ పారామితులను జోడించడం

ఇప్పుడు రాస్ప్బెర్రీ పై చివరి క్షణంలో మార్పిడికి మారినప్పుడు సిస్టమ్ యొక్క ప్రవర్తనను పరిష్కరిద్దాం, ఇది తరచుగా గడ్డకట్టడానికి దారితీస్తుంది. ఫైల్‌కి కొన్ని పంక్తులను జోడిద్దాం /etc/sysctl.conf మరియు రీబూట్ చేయండి.

ఈ పంక్తులు 1) జ్ఞాపకశక్తి యొక్క అనివార్యమైన అలసటను ఆలస్యం చేస్తుంది, కెర్నల్ కాష్‌పై ఒత్తిడిని పెంచడం మరియు 2) వారు ముందుగా జ్ఞాపకశక్తి క్షీణతకు సిద్ధమవుతారు, మార్పిడిని ముందుగానే ప్రారంభించడం. కానీ ZRAM ద్వారా కంప్రెస్డ్ మెమరీని మార్చుకోవడం చాలా సమర్థవంతంగా ఉంటుంది!

ఫైల్ చివరిలో జోడించాల్సిన పంక్తులు ఇక్కడ ఉన్నాయి /etc/sysctl.conf:

vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50

అప్పుడు మేము సిస్టమ్‌ను రీబూట్ చేస్తాము లేదా కింది ఆదేశంతో మార్పులను సక్రియం చేస్తాము:

sudo sysctl --system

vm.vfs_cache_pressure=500 కాష్ ఒత్తిడిని పెంచుతుంది, ఇది డైరెక్టరీ మరియు ఇండెక్స్ ఆబ్జెక్ట్‌లను కాష్ చేయడానికి ఉపయోగించే మెమరీని తిరిగి పొందే కెర్నల్ ధోరణిని పెంచుతుంది. మీరు ఎక్కువ కాలం పాటు తక్కువ మెమరీని వినియోగిస్తారు. పనితీరులో పదునైన తగ్గుదల మునుపటి మార్పిడి ద్వారా తిరస్కరించబడింది.

vm.swappiness = 100 మేము మొదట ZRAMని ఉపయోగిస్తున్నందున కెర్నల్ మెమరీ పేజీలను ఎంత దూకుడుగా మార్చుకుంటుందో పారామీటర్‌ను పెంచుతుంది.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - బ్యాక్‌గ్రౌండ్ ప్రాసెస్‌లు 1% పరిమితిని చేరుకున్న వెంటనే రికార్డింగ్ ప్రారంభమవుతాయి, అయితే సిస్టమ్ డర్టీ_రేషియో 50%కి చేరుకునే వరకు సింక్రోనస్ I/Oని బలవంతం చేయదు.

ఈ నాలుగు లైన్లు (ZRAMతో ఉపయోగించినప్పుడు) మీరు కలిగి ఉంటే పనితీరును మెరుగుపరచడంలో సహాయపడతాయి అనివార్యంగా RAM అయిపోయింది మరియు నా మాదిరిగానే స్వాప్‌కు మార్పు ప్రారంభమవుతుంది. ఈ వాస్తవాన్ని తెలుసుకోవడం మరియు ZRAM లో మెమరీ కంప్రెషన్‌ను మూడు రెట్లు పరిగణనలోకి తీసుకుంటే, ఈ స్వాప్‌ను ముందుగానే ప్రారంభించడం మంచిది.

కాష్‌పై ఒత్తిడి పెట్టడం సహాయపడుతుంది, ఎందుకంటే మనం తప్పనిసరిగా కెర్నల్‌కి ఇలా చెబుతున్నాము, "హే, చూడండి, కాష్ కోసం ఉపయోగించడానికి నా దగ్గర అదనపు మెమరీ ఏదీ లేదు, కాబట్టి దయచేసి దీన్ని వీలైనంత త్వరగా వదిలించుకోండి మరియు చాలా తరచుగా ఉపయోగించే/ముఖ్యమైన వాటిని మాత్రమే నిల్వ చేయండి. సమాచారం."

తగ్గిన కాషింగ్‌తో కూడా, కాలక్రమేణా ఇన్‌స్టాల్ చేయబడిన మెమరీలో ఎక్కువ భాగం ఆక్రమించబడినట్లయితే, కెర్నల్ చాలా ముందుగానే అవకాశవాద మార్పిడిని ప్రారంభిస్తుంది, తద్వారా CPU (కంప్రెషన్) మరియు స్వాప్ I/O చివరి నిమిషం వరకు వేచి ఉండవు మరియు అన్ని వనరులను ఒకేసారి ఉపయోగించినప్పుడు ఇది చాలా ఆలస్యం. ZRAM కుదింపు కోసం కొద్దిగా CPUని ఉపయోగిస్తుంది, కానీ చాలా తక్కువ మొత్తంలో మెమరీ ఉన్న సిస్టమ్‌లలో ఇది ZRAM లేకుండా స్వాప్ కంటే చాలా తక్కువ పనితీరు ప్రభావాన్ని కలిగి ఉంటుంది.

ముగింపులో

ఫలితాన్ని మళ్ళీ చూద్దాం:

pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi

pi@raspberrypi:~ $ sudo cat /proc/swaps 
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5

ZRAMలో 264448 దాదాపు ఒక గిగాబైట్ కంప్రెస్డ్ డేటా. ప్రతిదీ ZRAMకి వెళ్లింది మరియు చాలా నెమ్మదిగా ఉన్న పేజీ ఫైల్‌కు ఏమీ వెళ్లలేదు. ఈ సెట్టింగ్‌లను మీరే ప్రయత్నించండి, అవి అన్ని రాస్ప్‌బెర్రీ పై మోడల్‌లలో పని చేస్తాయి. నా ఉపయోగించలేని, ఫ్రీజింగ్ సిస్టమ్ క్రియాత్మకంగా మరియు స్థిరంగా మారింది.

సమీప భవిష్యత్తులో, ZRAMని ఇన్‌స్టాల్ చేయడానికి ముందు మరియు తర్వాత సిస్టమ్‌ను పరీక్షించడం ద్వారా కొన్ని ఫలితాలతో ఈ కథనాన్ని కొనసాగించాలని మరియు నవీకరించాలని నేను ఆశిస్తున్నాను. ఇప్పుడు నాకు దీని కోసం సమయం లేదు. ఈ సమయంలో, మీ స్వంత పరీక్షలను అమలు చేయడానికి సంకోచించకండి మరియు వ్యాఖ్యలలో నాకు తెలియజేయండి. రాస్ప్బెర్రీ పై 4 ఈ సెట్టింగ్‌లతో కూడిన మృగం. ఆనందించండి!

అంశం ద్వారా:

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి