මට නොමිලේ RAM ප්‍රමාණයක් තිබුණද swap භාවිතා කරන්නේ ඇයි?


225

RAM පිරී ඇති විට තාවකාලික ගබඩා ආරක්ෂණ දැලක් ලෙස ක්‍රියා කිරීම swap හි සමස්ත සාරය යැයි මම සිතුවෙමි, නමුත් සමහර විට 3GB තරම් නිදහස් RAM ප්‍රමාණයක් තිබුනද මගේ swap කොටස නිරන්තරයෙන් භාවිතා වේ. මෙය සාමාන්‍ය දෙයක්ද?


3
අපට ඔබේ ගැටලුව නිසි වඩා හොඳ උදව් කිරීම සඳහා පහත සඳහන් විධානය / ගොනු අන්තර්ගතය සහ ප්රතිදානය බෙදාගැනීමට ( මෙම පිළිතුරු උපදෙස් ) : free -m,top -b 1
සාක්ෂි ලැබී

හෙට එම විධානවල පේස්ට්බින් සමඟ ප්‍රශ්නය යාවත්කාලීන කරනු ඇත. දැන් උදේ 12 යි :(
මිස්ටීරියෝ

මම මාතෘකාව සංස්කරණය කළ යුත්තේ "... නමුත් මට දැන් නිදිමතයි, ඒ නිසා ඔබත් නිදාගන්නවා": P
ish

Answers:


202

ඔබේ "මාර්‍ගශීලීභාවය" අගය වෙනස් කිරීමට ඔබට උත්සාහ කළ හැකිය:

සිට උබුන්ටු Swap නිතර අසන ප්රශ්න :

මාරුව යනු කුමක්ද සහ එය වෙනස් කරන්නේ කෙසේද?

Swapiness පරාමිතිය මඟින් කර්නලයේ ක්‍රියාවලිය භෞතික මතකයෙන් ඉවතට ගෙන swap තැටියට ගෙන යාමේ ප්‍රවණතාව පාලනය කරයි. තැටි RAM වලට වඩා මන්දගාමී බැවින්, ක්‍රියාවලි ඕනෑවට වඩා ආක්‍රමණශීලීව මතකයෙන් ඉවතට ගෙන යන්නේ නම් මෙය පද්ධතියට සහ යෙදුම් සඳහා ප්‍රතිචාර දැක්වීමේ වේගය අඩු කරයි.

  1. swappiness හි අගය 0 ත් 100 ත් අතර විය හැක

  2. swappiness = 0 කර්නලයට පවසන්නේ හැකි තාක් දුරට භෞතික මතකයෙන් ක්‍රියාවලි මාරු කිරීමෙන් වළකින්න. කර්නල් 3.5 සහ නවතම අනුවාදය සඳහා එය මාර්‍ගය අක්‍රීය කරයි.

  3. swappiness = 100 කර්නලයට කියන්නේ ක්‍රියාවලි ආක්‍රමණශීලී ලෙස භෞතික මතකයෙන් ඉවතට ගෙන ඒවා හැඹිලි හැඹිලියට ගෙනයන්න

උබුන්ටු හි පෙරනිමි සැකසුම swappiness = 60 වේ. මාර්‍ගයේ පෙරනිමි අගය අඩු කිරීමෙන් සාමාන්‍ය උබුන්ටු ඩෙස්ක්ටොප් ස්ථාපනය සඳහා සමස්ත කාර්ය සාධනය වැඩි දියුණු වනු ඇත. Swappiness = 10 හි අගය නිර්දේශ කරනු ලැබේ, නමුත් අත්හදා බැලීමට නිදහස් වන්න. සටහන: උබුන්ටු සේවාදායක ස්ථාපනයන් ඩෙස්ක්ටොප් පද්ධති සඳහා වෙනස් කාර්ය සාධන අවශ්‍යතා ඇති අතර පෙරනිමි අගය 60 වඩා සුදුසු වේ.

Swapiness අගය පරීක්ෂා කිරීම සඳහා

cat /proc/sys/vm/swappiness

Swapiness අගය වෙනස් කිරීම සඳහා 10 ක swapiness අගය සමඟ තාවකාලික වෙනසක් (නැවත පණගැන්වීමේදී නැති වී ඇත)

sudo sysctl vm.swappiness=10

වෙනසක් ස්ථිර කිරීමට , ඔබගේ ප්‍රියතම සංස්කාරකය සමඟ වින්‍යාස ගොනුව සංස්කරණය කරන්න:

gksudo gedit /etc/sysctl.conf

Vm.swappiness සඳහා සොයන්න සහ එහි වටිනාකම අපේක්ෂිත පරිදි වෙනස් කරන්න. Vm.swappiness නොපවතී නම්, එය ගොනුවේ අවසානයට එකතු කරන්න:

vm.swappiness=10

ගොනුව සුරකිමින් නැවත ආරම්භ කරන්න.

ඔබට පරීක්ෂා කර බැලිය හැකිය: https://askubuntu.com/a/103916/54187


1
නිෂ්ක්‍රීය සමපේක්ෂනය: මෙය සැබවින්ම කාර්ය සාධනය සඳහා ප්‍රයෝජනවත් විය හැකිය - ටික වේලාවකින් ප්‍රවේශ නොවූ පිටු හුවමාරු අවකාශයට පිටපත් කළ හැකි අතර, එමඟින් මෙහෙයුම් පද්ධතියට මතකය අවශ්‍ය නම් ඒවා ඉක්මනින් ඉවත් කිරීමට ඉඩ සලසයි, නමුත් පිටු අන්තර්ගතය මතකයේ පවතී .
සයිමන් රිච්ටර්

7
Im සිමොන් රිච්ටර් ඔව් ඒක තමයි අදහස. නවීන පද්ධතිවල 60 ක් මාරුවීම බොහෝ විට ආක්‍රමණශීලී විය හැකිය, මන්ද එයින් අදහස් කරන්නේ ඔබ තවමත් නිදහස් මතකයන් කිහිපයක් ඇති විට ඔබ මාරු වීමට පටන් ගන්නා බවයි.
බ්‍රෙන්ඩන් ලෝන්ග්

1
sudo sysctl --load=/etc/sysctl.confවෙනස්කම් යෙදීම සඳහා ගොනුව සංස්කරණය කිරීමෙන් පසු ධාවනය කරන්න
deFreitas

105

ඔබේ ප්‍රශ්නයට වෙනස් අංශ කිහිපයක් තිබේ.

පළමුව, ඔබේ “නිදහස්” යන්නෙහි අර්ථ දැක්වීම කුමක්ද. එය ඇත්ත වශයෙන්ම ලිනක්ස් (හෝ ඕනෑම නවීන මෙහෙයුම් පද්ධතියක) මෙන් පෙනෙන තරම් සරල නොවේ.

ලිනක්ස් RAM භාවිතා කරන ආකාරය (ඉතා සරල)

සෑම යෙදුමකටම ඔබේ මතකයේ යම් ප්‍රමාණයක් භාවිතා කළ හැකිය. ලිනක්ස් වෙනත් ආකාරයකින් භාවිතයට නොගත් මතකය (අවසාන Mb කිහිපයක් හැර) "හැඹිලිය" ලෙස භාවිතා කරයි. පිටු හැඹිලිය, ඉනෝඩ් හැඹිලි ආදිය මෙයට ඇතුළත් වේ. මෙය හොඳ දෙයකි - එය දේවල් වේගවත් කිරීමට උපකාරී වේ. තැටියට ලිවීම සහ තැටියෙන් කියවීම යන දෙකම හැඹිලියෙන් විශාල ලෙස වේගවත් කළ හැකිය.

ඉතා මැනවින්, ඔබගේ සියලු යෙදුම් සඳහා ඔබට ප්‍රමාණවත් මතකයක් ඇති අතර, හැඹිලිය සඳහා ඔබට තවමත් Mb සිය ගණනක් ඉතිරිව ඇත. මෙම තත්වය තුළ, ඔබගේ යෙදුම්වල මතක භාවිතය වැඩි නොකරන අතර, හැඹිලිය සඳහා ප්‍රමාණවත් ඉඩක් ලබා ගැනීමට පද්ධතිය වෙහෙසෙන්නේ නැති තාක් කල්, කිසිදු හුවමාරුවක් අවශ්‍ය නොවේ.

යෙදුම් වැඩි RAM ප්‍රමාණයක් ලබාගත් පසු, එය හුදෙක් හැඹිලිය භාවිතා කළ අවකාශයට ගොස්, හැඹිලිය හැකිලී යයි. හැඹිලිය විසර්ජනය කිරීම ලාභදායී වන අතර එය තථ්‍ය කාලීනව කළ හැකි තරම් පහසුය - හැඹිලියේ හිඳින සෑම දෙයක්ම දැනටමත් තැටියේ ඇති දෙයක දෙවන පිටපතක් පමණි, එබැවින් එය ක්ෂණිකව ඉවත් කළ හැකිය, නැතහොත් එය අප විසින් කළ යුතු දෙයකි කෙසේ හෝ ඉදිරි තත්පර කිහිපය තුළ තැටියට ගලා යා යුතුය.

මෙය ලිනක්ස් සඳහා විශේෂිත වූ තත්වයක් නොවේ - සියලුම නවීන මෙහෙයුම් පද්ධති මේ ආකාරයට ක්‍රියා කරයි. විවිධ මෙහෙයුම් පද්ධති නොමිලේ RAM වෙනස් ලෙස වාර්තා කළ හැකිය: සමහර ඒවා "නොමිලේ" ලෙස සලකන දේවල කොටසක් ලෙස හැඹිලිය ඇතුළත් වන අතර සමහර ඒවා එසේ නොවිය හැකිය.

ඔබ නොමිලේ RAM ගැන කතා කරන විට , හැඹිලිය ඇතුළත් කිරීම වඩා අර්ථවත් වේ , මන්ද එය ප්‍රායෝගිකව නොමිලේ - ඕනෑම යෙදුමක් ඉල්ලා සිටියහොත් එය ලබා ගත හැකිය. ලිනක්ස් හි, freeවිධානය එය දෙයාකාරයෙන්ම වාර්තා කරයි - පළමු පේළියේ භාවිතා කළ RAM තීරුවේ හැඹිලිය ඇතුළත් වන අතර දෙවන පේළියේ නිදහස් තීරුවේ හැඹිලි (සහ බෆර්) ඇතුළත් වේ.

ලිනක්ස් swap භාවිතා කරන ආකාරය (ඊටත් වඩා සරල)

සුමටව ක්‍රියාත්මක වන හැඹිලියක් සඳහා ප්‍රමාණවත් තරම් ප්‍රමාණයක් නොමැති බව ඔබ ප්‍රමාණවත් මතකයක් භාවිතා කළ පසු, භාවිතා නොකරන ලද යෙදුම් මතකය RAM සිට හුවමාරු කර ගැනීම සඳහා නැවත වෙන් කිරීමට ලිනක්ස් තීරණය කළ හැකිය.

නිශ්චිත කප්පාදුවකට අනුව මෙය සිදු නොවේ. ඔබ යම් ප්‍රතිශත ප්‍රතිශතයකට ලඟා වූවාක් මෙන් නොවේ, එවිට ලිනක්ස් හුවමාරු වීමට පටන් ගනී. එයට තරමක් "නොපැහැදිලි" ඇල්ගොරිතමයක් ඇත. එය බොහෝ දේ සැලකිල්ලට ගනී, එය "මතක වෙන් කිරීම සඳහා කොපමණ පීඩනයක් තිබේද" යන්න වඩාත් හොඳින් විස්තර කළ හැකිය. නව මතකය වෙන් කිරීම සඳහා විශාල "පීඩනයක්" තිබේ නම්, එමඟින් වැඩි ඉඩක් ලබා ගැනීම සඳහා සමහරක් හුවමාරු වීමේ අවස්ථා වැඩි වේ. "පීඩනය" අඩු නම් එය මෙම අවස්ථා අඩු කරයි.

ඔබේ පද්ධතියට "මාර්‍ගගත" සැකසුමක් ඇති අතර එමඟින් මෙම "පීඩනය" ගණනය කරන්නේ කෙසේද යන්න වෙනස් කිරීමට ඔබට උපකාරී වේ. මෙය කිසිසේත් වෙනස් කිරීම සාමාන්‍යයෙන් නිර්දේශ නොකරයි, එය වෙනස් කිරීමට මම ඔබට නිර්දේශ නොකරමි. හුවමාරු කිරීම සමස්තයක් වශයෙන් ඉතා හොඳ දෙයකි - එය ක්‍රියාකාරීත්වයට හානි කරන අවස්ථා කිහිපයක් තිබුණද, සමස්ත පද්ධති ක්‍රියාකාරිත්වය දෙස බැලුවහොත් එය පුළුල් පරාසයක කාර්යයන් සඳහා ශුද්ධ ප්‍රතිලාභයකි. ඔබ මාර්‍ගය අඩු කරන්නේ නම්, හැඹිලි මතකයේ ප්‍රමාණය වෙනත් ආකාරයකින් වඩා ටිකක් හැකිලීමට ඉඩ හරින්න, එය සැබවින්ම ප්‍රයෝජනවත් විය හැකිය. හුවමාරු කර ගැනීමේදී ඔබට ඇති ඕනෑම ගැටළුවක් සඳහා මෙය හොඳ වෙළඳාමක්ද යන්න ඔබට භාරයි. ඔබ කරන්නේ කුමක්දැයි ඔබ දැනගත යුතුය, එපමණයි.

හුවමාරුව ඩෙස්ක්ටොප් පද්ධතියක ක්‍රියාකාරීත්වයට සැබවින්ම හානි කරන සුප්‍රසිද්ධ තත්වයක් පවතින අතර, එය දිගු කලක් අක්‍රියව සිටීමෙන් පසුව සහ IO හි පසුබිම් ක්‍රියාවලීන් අධික ලෙස යෙදීමෙන් පසු නැවත වරක් පරිශීලක ආදානයට ප්‍රතිචාර දැක්විය හැකිය. එක රැයකින් උපස්ථ) ධාවනය කරන්න. මෙය ඉතා දෘශ්‍යමාන මන්දගාමී බවකි, නමුත් සියල්ල එකවරම අක්‍රිය කිරීම සාධාරණීකරණය කිරීමට ප්‍රමාණවත් නොවන අතර ඕනෑම මෙහෙයුම් පද්ධතියක වැළැක්වීම ඉතා අපහසුය. හුවමාරුව අක්‍රිය කරන්න, උපස්ථ / වෛරස් ස්කෑන් කිරීමෙන් පසු මෙම ආරම්භක මන්දගාමී බව සිදු නොවිය හැක, නමුත් පද්ධතිය දවස පුරා ටිකක් මන්දගාමීව ක්‍රියාත්මක විය හැකිය. මෙය ලිනක්ස් වලට පමණක් සීමා වූ තත්වයක් නොවේ.

තැටියට මාරු කළ යුතු දේ තෝරාගැනීමේදී, පද්ධතිය සත්‍ය වශයෙන්ම භාවිතා නොකරන මතකය තෝරා ගැනීමට උත්සාහ කරයි - කියවීමට හෝ ලිවීමට. බොහෝ විට හොඳින් තෝරා ගන්නා මෙය ගණනය කිරීම සඳහා එය ඉතා සරල ඇල්ගොරිතමයක් ඇත.

ඔබ සතුව විශාල RAM ප්‍රමාණයක් ඇති පද්ධතියක් තිබේ නම් (ලිවීමේදී 8GB යනු සාමාන්‍ය ලිනක්ස් ඩිස්ට්‍රෝ සඳහා විශාල මුදලකි), එවිට ඔබට හුවමාරුව අවශ්‍ය වන අවස්ථාවකට ඔබ පැමිණෙන්නේ කලාතුරකිනි. ඔබට swap අක්‍රිය කිරීමට පවා උත්සාහ කළ හැකිය. මම එය කිසි විටෙකත් නිර්දේශ නොකරමි, නමුත් සමහර යෙදුම් බිඳවැටීම් වලින් වැඩි RAM ප්‍රමාණයක් ඔබව බේරා ගන්නේ කවදාදැයි ඔබ නොදන්නා නිසා පමණි. නමුත් ඔබට එය අවශ්‍ය නොවන බව ඔබ දන්නේ නම්, ඔබට එය කළ හැකිය .

නමුත් හුවමාරුව මගේ පද්ධතිය වේගවත් කරන්නේ කෙසේද? මන්දගාමී දේවල් මාරු කරන්නේ නැද්ද?

RAM සිට swap වෙත දත්ත මාරු කිරීමේ ක්‍රියාව මන්දගාමී මෙහෙයුමකි, නමුත් එය ගනු ලබන්නේ කර්නලය විශ්වාස කරන විට පමණක් සමස්ත ප්‍රතිලාභය මෙය ඉක්මවා යනු ඇත. නිදසුනක් ලෙස, ඔබගේ යෙදුම් මතකය ඔබට හැඹිලියක් නොමැති තරම් ඉහළ ගොස් ඇති අතර ඔබේ I / O ඉතා අකාර්යක්ෂම නම්, මේ නිසා ඔබට යම් මතක ප්‍රමාණයක් නිදහස් කිරීමෙන් ඔබේ පද්ධතියෙන් වැඩි වේගයක් ලබා ගත හැකිය. දත්ත නිදහස් කිරීම සඳහා හුවමාරු කිරීමේ මූලික වියදමෙන් පසුව.

ඔබගේ යෙදුම් ඇත්ත වශයෙන්ම ඔබට වඩා වැඩි මතකයක් ඉල්ලා සිටියහොත් එය අවසාන අවස්ථාවකි . මෙම අවස්ථාවෙහිදී, හුවමාරුව අවශ්‍ය වන්නේ මතකයෙන් බැහැර තත්වයක් වළක්වා ගැනීම සඳහා වන අතර එමඟින් බොහෝ විට යෙදුම බිඳවැටීමට හෝ බලහත්කාරයෙන් මරණයට පත් වීමට සිදුවනු ඇත.

ඔළුගෙඩි පමණක් ඇත සම්බන්ධ ඔබේ පද්ධතිය වේගය (හෝ එය අස්ථිර කළ) බව වන යානාවල භාවිතා කළ හැකි RAM අවසන් වීගෙන යන්නේ විට ඔබ swap නැහැ පවා නම් එය විටින් විට සිදු නිසා ඔබේ පද්ධතිය දුර්වල සිදු කරනු ලබන කාලය සමග. ඒ නිසා සරල දේවල්, ඔළුගෙඩි සිදු නිසා ඔබේ පද්ධතිය වෙනුවට වෙනත් ක්රමයක් වටා වඩා, එයින් යටපත් බවට පත් වෙමින් තිබේ.

දත්ත හුවමාරු වූ පසු, එය නැවත එළියට එන්නේ කවදාද?

හුවමාරුවෙන් දත්ත මාරු කිරීම (සාම්ප්‍රදායික දෘඩ තැටි සඳහා, අවම වශයෙන්) එය එහි තැබීමට තරම් කාලයක් ගත වේ. ඔබේ කර්නලය හුවමාරුවෙන් දත්ත ඉවත් කිරීමට අකමැති වනු ඇත, විශේෂයෙන් එය ඇත්ත වශයෙන්ම භාවිතා නොකෙරේ නම් (එනම් කියවීම හෝ ලිවීම). ඔබ swap දත්ත ඇති අතර එය භාවිතා නොවේ නම්, එය ඇත්තටම හොඳ දෙයක් එය වෙනත් දේවල් සඳහා වැඩි මතක පිටත් සිට එය, swap තුළ පවතින බවට තියෙන්නේ වේ හැකි ඔබේ පද්ධතිය වේගවත්, භාවිතා.


5
සවිස්තරාත්මක පැහැදිලි කිරීම සඳහා +1. මගේ පරිගණකවල 2GiB හුවමාරුව තබා ගැනීමටද මම කැමතියි. යමක් නරක අතට හැරේ නම් - මතක කාන්දු වීම යනාදිය, එවිට ඔබට swap ඉහළට යන බව දැකගත හැකි අතර මතකයෙන් පිටතට යාමට පෙර ගැටලුව සොයා බලන්න. එය ආරක්ෂිත දැලක් මෙන්ම කාර්ය සාධන මෙවලමකි.
ජෝ

1
2GB RAM ප්‍රමාණයක් ඇති මගේ නෙට්බුක් එකේ මම 4GB swap තබා ගන්නවා. මෙයට හේතුව මම නෙට්බුක් පරිගණකය භාවිතා කිරීමට අදහස් කළ බොහෝ දේ සඳහා භාවිතා කරන අතර මගේ වැඩසටහන් වලට නිතරම 2GB කට වඩා වැඩි මතකයක් අවශ්‍ය වේ. මතකයෙන් බැහැර අවස්ථාවන්හිදී ලිනක්ස් ඉතා දුර්වල ලෙස හැසිරෙන හෙයින්, මම විශාල ආරක්ෂිත දැලක් ලබා ගැනීමට කැමැත්තෙමි. මට ඕනෑ තරම් තැටි ඉඩ තිබේ.
ස්කොට් සෙවරන්ස්

ඔබේ වැඩසටහන් වලට නිතරම 2GB මතක ප්‍රමාණයක් අවශ්‍ය නම්, මම එහි වැඩි RAM ප්‍රමාණයක් ලබා ගැනීම ගැන සලකා බලමි (එය අතිශය ලාභයි!) වෙනත් පා readers කයන්ගේ ප්‍රයෝජනය සඳහා: ඔබ ලබා ගත හැකි RAM එක ලබා ගත යුතු යැයි හැඹිලි මතකය දෙස නොබලන බවට පත් කරන්න - වෙනත් යොමු බලන්න free -m.
thomasrutter

2
@neon_overload: HP ට අනුව මගේ නෙට්බුක්හි උපරිම RAM ප්‍රමාණය 1GB බව මම සටහන් කළ යුතුයි. මට දැන් එහි 2GB ඇත, සහ අන්තර්ජාල ආරංචි මාර්ග යෝජනා කරන්නේ 2GB සැබෑ උපරිමය බවයි. මේ අනුව මෙම ආකාරයේ වැඩ කිරීමේ අවශ්‍යතාවය.
ස්කොට් සෙවරන්ස්

@thomasrutter: විශාල සේවාදායකයන් සඳහා ඔබේ පිළිතුර වෙනස් වන්නේ කෙසේද, මගේ එකක් 1TB (ඔව් එක් සම්පූර්ණ ටෙරාබයිට්) බැටළුවෙකු ඇති නමුත් තවමත් swap භාවිතා කරයි; කුමන swapiness සැකසුම සහ ඔබ නිර්දේශ කරන්නේ කුමන ප්‍රමාණයේ swap කොටසද?
chrisinmtown

26

Swapiness අගය සැකසීම සෑම තත්වයකදීම ක්‍රියාත්මක නොවේ. එය ඔබ වෙනුවෙන් වැඩ කරන්නේ නම්, නියමයි. එසේ නොවේ නම්, මම වරින් වර swap ක්‍රියා විරහිත කර නැවත ක්‍රියා විරහිත කර පිටපතක් ලියා ඇත.

ඔබ පරෙස්සම් නොවන්නේ නම් හුවමාරුව ටොගල කිරීම ටිකක් අවදානම් වේ. සෑම දෙයක්ම RAM හි තබා ගැනීමට සහ සෑම දෙයක්ම swap හි තබා ගැනීමට ඔබට ප්‍රමාණවත් තරම් නිදහස් RAM නොමැති නම් , swap අක්‍රීය කිරීමට උත්සාහ කිරීමෙන් ඔබේ පද්ධතිය ප්‍රතිචාර නොදක්වනු ඇත. මගේ ස්ක්‍රිප්ට් එක මුලින් පරික්ෂා කරන්නේ ප්‍රමාණවත් තරම් නිදහස් RAM ප්‍රමාණයක් තිබේද යන්නයි free. නමුත්, ඔබ RAM ගැන ටිකක් කෙටි නම්, ස්ක්‍රිප්ට් ක්‍රියාත්මක වන විට තවත් ප්‍රධාන ක්‍රියාවලියක් ආරම්භ නොකරන්න. මේ තියෙන්නේ:

#!/bin/bash

# Make sure that all text is parsed in the same language
export LC_MESSAGES=en_US.UTF-8
export LC_COLLATE=en_US.UTF-8
export LANG=en_US.utf8
export LANGUAGE=en_US:en
export LC_CTYPE=en_US.UTF-8

# Calculate how much memory and swap is free
free_data="$(free)"
mem_data="$(echo "$free_data" | grep 'Mem:')"
free_mem="$(echo "$mem_data" | awk '{print $4}')"
buffers="$(echo "$mem_data" | awk '{print $6}')"
cache="$(echo "$mem_data" | awk '{print $7}')"
total_free=$((free_mem + buffers + cache))
used_swap="$(echo "$free_data" | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$total_free kB ($((total_free / 1024)) MB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MB)"

# Do the work
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $total_free ]]; then
    echo "Freeing swap..."
    swapoff -a
    swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi

ඔබ මෙම ස්ක්‍රිප්ට් එක root ලෙස ධාවනය කළ යුතුය (උදා: සමඟ sudo). මෙම ස්ක්‍රිප්ට් මඟින් ඔබේ පද්ධතිය ප්‍රතිචාර නොදක්වයි. ඔබට ප්‍රමාණවත් තරම් RAM ප්‍රමාණයක් නොමැති නම්, එය හුවමාරු ටොගල් කිරීම ප්‍රතික්ෂේප කරයි. මම මේ ස්ක්‍රිප්ට් එක අවුරුදු පහකට ආසන්න කාලයක් තිස්සේ කිසිදු ගැටළුවක් නොමැතිව භාවිතා කර ඇත්තෙමි.


ස්ක්‍රිප්ට් සඳහා +1. ප්‍රතිදානයන්හි MB සිට MiB දක්වා වෙනස් කිරීමෙන් ඔබට එය ටිකක් නවීකරණය කිරීමට අවශ්‍ය විය හැකිය. ඔබ ඇතුළත් කරන සියලුම (හොඳ) ආරක්‍ෂිත පරීක්ෂණ නොමැතිව මම සමාන පිටපතක් ලිව්වෙමි. මගේ පැරණි නෝට්බුක් පරිගණකය තුළ අධික ලෙස හුවමාරුව භාවිතා කර ඇති අතර, එය ක්‍රියාත්මක වීමට ටික වේලාවක් ගතවනු ඇත - විනාඩියක් හෝ දෙකක්, නමුත් කිසිවක් හානියක් නොවීය. ටික වේලාවකට පසු එය අසාර්ථක වනු ඇත්තේ එය ක්‍රියාත්මක කිරීමට ප්‍රමාණවත් නිදහස් මතකයක් නොතිබූ නමුත් අමතර ගැටළු කිසිවක් ඇති නොවූ බැවිනි. එය සිදු වූ විට දේවල් ඉවත් කිරීමට මට නැවත පණගැන්වීමට සිදු විය. එය කළ යුතුව ඇත්තේ සම්ප්‍රේෂණයේ මතක කාන්දුවක් මෙන් පෙනේ (ස්ථාවර බැවින්, මම විශ්වාස කරමි) සහ 2GiB රැම් එකක් පමණක් තිබීම.
ජෝ

6
යමක් හුවමාරු කර ගෙන එය හුවමාරුවේ පවතී නම්, එය සාමාන්‍යයෙන් හොඳ දෙයකි - එයින් අදහස් වන්නේ දත්ත සැබවින්ම භාවිතා නොකෙරෙන අතර, එය ඔබගේ RAM වලින් සමහරක් වෙනත් දේවල් සඳහා නිදහස් කර ඇති අතර එහි ප්‍රති speed ලයක් ලෙස වේගය ඉහළ නැංවිය හැකිය. මෙම දත්ත හුවමාරු නොවිය යුතු අතර ඒ වෙනුවට වඩා වටිනා RAM ප්‍රමාණයක් ගත යුතු යැයි විශ්වාස කිරීමට ඔබව පෙලඹවූයේ කුමක්ද? සාමාන්‍යයෙන් කර්නලය භාවිතයට නොගත් දේ දැන ගැනීමට ඉතා හොඳ වන අතර RAM නිදහස් කර ගැනීම සඳහා ආරක්ෂිතව හුවමාරු විය හැකිය.
thomasrutter

onneon: මගේ යන්ත්‍රවල පිළිවෙලින් 2GB සහ 3GB RAM ප්‍රමාණයක් ඇති බව මතක තබා ගන්න, මේ දිනවල එය ඉතා අල්පය. සාක්ෂි කාර්ය සාධනය තුළ ඇත. නිදසුනක් ලෙස, කොම්පෝස් වීසාල් ආචරණයන් මෙන් මෙනු ගෙන ඒම හෝ වැඩසටහන් මාරු කිරීම මන්දගාමී විය හැකිය. මෙම මන්දගාමී බව සුව කරනු ලබන්නේ හුවමාරුව ටොගල කිරීමෙන් වන අතර එමඟින් අවම වශයෙන් සමහර අවස්ථාවල කර්නලයේ ප්‍රශස්තිකරණ ඇල්ගොරිතම උප ප්‍රශස්ත බව පෙන්නුම් කරයි. මට නැවත නැවත අත්දැකීම් සමඟ තර්ක කළ නොහැකිය.
ස්කොට් සෙවරන්ස්

පියු !! මෙය හුවමාරුවෙන් 0% දක්වා ඉහළ ගොස් ඇත .... මෙම සම්පූර්ණ ප්‍රශ්නය සහ එහි පිළිතුර සොයා බැලීමට මට වැඩි කාලයක් නොතිබුණි, නමුත් මට යම් නිදහස් කාලයක් ලැබුණු විට එය කියවීමට මම කැමති විය.
ඇස්කර්එම්

1
නිසැකවම, නමුත් මතකය නිදහස් වූ පසු කුමක් කළ යුතුද යන ගැටලුවට එය විසඳුම් ලබා නොදෙන අතර දැන් ප්‍රමාණවත් නිදහස් මතකයක් තිබියදීත් දේවල් තවමත් හුවමාරු වෙමින් පවතී. අවශ්‍ය වන තෙක් කර්නලය එය හුවමාරුවෙන් ඉවතට නොයනු ඇත, එමඟින් පද්ධති ප්‍රතිචාර දැක්වීමේදී විශාල ගැටළු ඇති විය හැකිය. (පද්ධති මෙනුව සියල්ල මාරු කර ඇති විට සලකා බලන්න: ඔබ මෙනු බොත්තම ක්ලික් කරන තුරු එය නැවත මාරු නොවනු ඇත, එයින් අදහස් වන්නේ මෙනුව උත්පතන වීමට ඔබට හදිසියේ මඳ වේලාවක් බලා සිටීමට සිදු වන බවයි.) ඒ නිසා එය අතින් පිටතට ඇද දමයි සුදුසු වේලාවක හුවමාරු වීමෙන් පද්ධතියේ ප්‍රතිචාරාත්මක බව වැඩි දියුණු කළ හැකිය.
ස්කොට් සෙවරන්ස්

5

වර්තමානයේ පවතින පද්ධතිවල සාමාන්‍යයෙන් swap භාවිතා නොකෙරේ. මගේ අත්දැකීම් අනුව, දැඩි මෙහෙයුම් නොමැතිව දීර් time කාලයක් තිස්සේ ක්‍රියාත්මක වන ක්‍රියාවලීන් ලිනක්ස් මගින් හුවමාරු කර ගනු ලැබේ.
එමඟින් බලපෑමට ලක්වූ වැඩසටහන් කිහිපයක් මන්දගාමී වේ.
ඔබට රැම් රහිත ප්‍රමාණයක් තිබේ නම්, ඔබට විධානය ක්‍රියාත්මක කිරීමෙන් swap එක ක්‍රියා විරහිත කළ හැකිය:
swapoff -av(ඔබට ඒ sudoසඳහා අයිතිවාසිකම් අවශ්‍ය වේ.)
ඔබ swap අක්‍රිය කිරීමට අකමැති නම්, සමමිතික විධානය භාවිතා කර ඔබට එය ක්‍රියාත්මක කළ හැකිය:
swapon -av( නැවත sudoඅවශ්‍යයි).


12
සම්පූර්ණයෙන්ම ඉවත් ස්වැප් හැරෙමින් swapiness = 0 සිට overkill වේ එකම දෙයක් නැහැ, නමුත් වඩා ආරක්ෂිත (ඔබ කළ මතකයේ ඕනෑවට වඩා දේවල් සමග අවසන්, එය හුවමාරු යමක් විසි කරනු ඇත).
බ්‍රෙන්ඩන් ලෝන්ග්

@ බ්‍රෙන්ඩන් ලෝන්ග් ෆෙයාර් පොයින්ට් .. මට ඉගැන්නුවාට ස්තූතියි. :)
drake01

5

ස්කොට් සෙවරන්ස් හි පිටපත මම සංස්කරණය කළේ නොමිලේ ලබා ගත හැකි නවතම අනුවාදයන්ට ගැලපෙන පරිදිය .

#!/bin/bash

free_mem="$(free | grep 'Mem:' | awk '{print $7}')"
used_swap="$(free | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$free_mem kB ($((free_mem / 1024)) MiB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MiB)"
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $free_mem ]]; then
    echo "Freeing swap..."
    sudo swapoff -a
    sudo swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi

3

වැඩසටහනක් සඳහා swap භාවිතා කළ පසු එය වැඩසටහනේ ආයු කාලය සඳහා සිතියම් ගත කර ඇත. බොහෝ වැඩසටහන් වල කේත (සහ දත්ත) ඇත්තේ කලාතුරකිනි .. මතකය මාරු වූ පසු එය මාරු වීමට අපහසුය.

මෙම පිටු මතකයට බල කිරීමට එක් ක්‍රමයක් නම් swap උපාංගය ක්‍රියා විරහිත කිරීමයි. ඔබට දෙකක් තිබේ නම්, ඔබට එකක් ක්‍රියා විරහිත කළ හැකිය, එය නැවත සක්‍රිය කරන්න, ඉන්පසු දෙවැන්න නිවා දමන්න. හුවමාරුව සැබවින්ම අවශ්‍ය නම්, එය උපාංග අතර චලනය වේ. ඔබට swap උපාංගය (හෝ ගොනුව) අක්‍රිය කළ හැකිය, නමුත් ඔබට සැබවින්ම swap අවකාශය අවශ්‍ය නම් දරුණු දේ සිදුවිය හැකිය.

මතකයේ ඇති සාමාන්‍ය දේවලට අමතරව, තාවකාලිකයන් swap අවකාශය භාවිතා කරන අතර අනෙක් මතකය මෙන් හුවමාරු වේ. ඔබ තාවකාලික තැටියක් අවශ්‍ය යමක් ධාවනය කරන්නේ නම්, එය පිටු මාරු කිරීමට බල කරයි. වරක් සාදන ලද තාවකාලික ලිපිගොනු මිනිත්තු දෙකකට පසුව තවදුරටත් භාවිතා නොකෙරෙන අතර හුවමාරු උපාංගය වෙත ගෙන යාමට හොඳ අපේක්ෂකයින් වේ.

ආකාරයෙන් ඔබට ගොනුවක් swap උපාංගයක් ලෙස භාවිතා කළ හැකිය. ඔබට තාවකාලිකව අමතර හුවමාරු ඉඩක් අවශ්‍ය නම් මෙය ප්‍රයෝජනවත් වේ.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.