ວິທີການລຶບລ້າງ RAM Memory Cache, Buffer ແລະ Swap Space ໃນ Linux
ເຊັ່ນດຽວກັບລະບົບປະຕິບັດການອື່ນໆ, GNU/Linux ໄດ້ຈັດຕັ້ງປະຕິບັດການບໍລິຫານຈັດການ ໜ່ວຍ ຄວາມ ຈຳ ຢ່າງມີປະສິດທິພາບແລະຍິ່ງກວ່ານັ້ນ. ແຕ່ຖ້າວ່າຂະບວນການໃດ ໜຶ່ງ ກຳ ລັງກິນຄວາມຊົງ ຈຳ ຂອງທ່ານແລະທ່ານຕ້ອງການລຶບລ້າງມັນ, ລີນຸກກໍ່ໃຫ້ວິທີການໄຫຼອອກຫຼືລ້າງແຄດ RAM.
ທຸກໆລະບົບ Linux ມີສາມທາງເລືອກໃນການລ້າງແຄດໂດຍບໍ່ລົບກວນຂະບວນການຫລືບໍລິການໃດໆ.
1. ລ້າງ PageCache ເທົ່ານັ້ນ.
# sync; echo 1 > /proc/sys/vm/drop_caches
2. ລ້າງແຂ້ວປອມແລະ inodes.
# sync; echo 2 > /proc/sys/vm/drop_caches
3. ລ້າງ PageCache, ແຂ້ວປອມແລະ inodes.
# sync; echo 3 > /proc/sys/vm/drop_caches
ການອະທິບາຍ ຄຳ ສັ່ງຂ້າງເທິງ.
ການຊິ້ງຂໍ້ມູນຈະກະຕຸ້ນແຟ້ມແຟ້ມລະບົບແຟ້ມ. ຄຳ ສັ່ງແຍກໂດຍ “;”
ດຳ ເນີນການຕາມ ລຳ ດັບ. ຫອຍລໍຖ້າແຕ່ລະ ຄຳ ສັ່ງສິ້ນສຸດກ່ອນທີ່ຈະປະຕິບັດ ຄຳ ສັ່ງຕໍ່ໄປໃນ ລຳ ດັບ. ດັ່ງທີ່ໄດ້ກ່າວໄວ້ໃນເອກະສານ kernel, ການຂຽນໄປທີ່ drop_cache ຈະເຮັດຄວາມສະອາດ cache ໂດຍບໍ່ຕ້ອງເສຍຄ່າການ ນຳ ໃຊ້/ການບໍລິການໃດໆ, ຄຳ ສັ່ງ echo ກຳ ລັງເຮັດວຽກຂອງການຂຽນເພື່ອຍື່ນ.
ຖ້າທ່ານຕ້ອງລຶບລ້າງ cache, ຄຳ ສັ່ງ ທຳ ອິດຈະປອດໄພທີ່ສຸດໃນວິສາຫະກິດແລະການຜະລິດຄື “ ... ແອັກໂກ້ 1> ….”
ຈະລຶບ PageCache ເທົ່ານັ້ນ. ມັນບໍ່ໄດ້ຖືກແນະ ນຳ ໃຫ້ໃຊ້ຕົວເລືອກທີສາມທີ່ຢູ່ຂ້າງເທິງ “ ... ແອັກໂກ້ 3>”
ໃນການຜະລິດຈົນກວ່າທ່ານຈະຮູ້ວ່າທ່ານ ກຳ ລັງເຮັດຫຍັງຢູ່, ເພາະມັນຈະ ກຳ ຈັດ PageCache, ແຂ້ວປອມແລະ inodes.
ເມື່ອທ່ານ ກຳ ລັງສະ ໝັກ ການຕັ້ງຄ່າຕ່າງໆແລະຕ້ອງການກວດສອບ, ຖ້າມັນຖືກປະຕິບັດໂດຍສະເພາະໃນດັດຊະນີ I/O- ທີ່ກ້ວາງຂວາງ, ຫຼັງຈາກນັ້ນທ່ານອາດຈະຕ້ອງ ກຳ ຈັດ cache cache. ທ່ານສາມາດລຸດ cache ທີ່ໄດ້ອະທິບາຍໄວ້ຂ້າງເທິງໂດຍບໍ່ຕ້ອງເປີດລະບົບ i.e. , ບໍ່ຕ້ອງມີເວລາເລື່ອນເວລາ.
Linux ຖືກອອກແບບໃນແບບທີ່ມັນເບິ່ງເຂົ້າໄປໃນບ່ອນເກັບຂໍ້ມູນຂອງແຜ່ນກ່ອນທີ່ຈະເບິ່ງແຜ່ນ. ຖ້າມັນພົບວ່າຊັບພະຍາກອນທີ່ຢູ່ໃນບ່ອນເກັບມ້ຽນ, ຫຼັງຈາກນັ້ນ ຄຳ ຮ້ອງຂໍບໍ່ໄປຮອດແຜ່ນດິດ. ຖ້າພວກເຮົາເຮັດຄວາມສະອາດ cache, ແຜ່ນ cache ຈະບໍ່ມີປະໂຫຍດຫລາຍເທົ່າທີ່ OS ຈະຊອກຫາຊັບພະຍາກອນທີ່ຢູ່ໃນແຜ່ນ.
ຍິ່ງໄປກວ່ານັ້ນມັນຍັງຈະເຮັດໃຫ້ລະບົບຊ້າລົງເປັນເວລາສອງສາມວິນາທີໃນຂະນະທີ່ແຄດຖືກອະນາໄມແລະທຸກໆຊັບພະຍາກອນທີ່ຕ້ອງການໂດຍ OS ຈະຖືກໂຫລດອີກຄັ້ງໃນ disk-cache.
ຕອນນີ້ພວກເຮົາຈະໄດ້ຮັບການສ້າງສະຄິບຫອຍເພື່ອເຮັດໃຫ້ລ້າງຂໍ້ມູນຂອງ RAM ໂດຍອັດຕະໂນມັດທຸກໆວັນເວລາ 2 ໂມງເຊົ້າໂດຍຜ່ານ ໜ້າ ວຽກ cron scheduler. ສ້າງສະຄິບແກະ shell clearcache.sh ແລະເພີ່ມສາຍຕໍ່ໄປນີ້.
#!/bin/bash # Note, we are using "echo 3", but it is not recommended in production instead use "echo 1" echo "echo 3 > /proc/sys/vm/drop_caches"
ກໍານົດການປະຕິບັດການອະນຸຍາດໃນເອກະສານ clearcache.sh.
# chmod 755 clearcache.sh
ຕອນນີ້ທ່ານອາດຈະໂທຫາສະຄິບທຸກຄັ້ງທີ່ທ່ານຕ້ອງການລຶບລ້າງ cache.
ຕອນນີ້ ກຳ ນົດ cron ເພື່ອ ກຳ ຈັດ cache ຂອງ cache ທຸກໆມື້ເວລາ 2 ໂມງເຊົ້າ. ເປີດ crontab ສຳ ລັບການແກ້ໄຂ.
# crontab -e
ຕື່ມໃສ່ເສັ້ນທາງລຸ່ມ, ບັນທຶກແລະອອກເພື່ອ ດຳ ເນີນການໃນເວລາ 2 ໂມງເຊົ້າ.
0 2 * * * /path/to/clearcache.sh
ສຳ ລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບວິທີເຮັດວຽກທີ່ທ່ານອາດຈະຕ້ອງການກວດເບິ່ງບົດຄວາມຂອງພວກເຮົາກ່ຽວກັບ 11 Cron Scheduling Jobs.
ບໍ່! ມັນບໍ່ແມ່ນ. ຄິດກ່ຽວກັບສະຖານະການໃນເວລາທີ່ທ່ານໄດ້ກໍານົດສະຄິບເພື່ອລ້າງ ram cache ປະຈໍາວັນໃນເວລາ 2 ໂມງເຊົ້າ. ທຸກໆມື້ເວລາ 2 ໂມງເຊົ້າການຂຽນອັກສອນຖືກປະຕິບັດແລະມັນເຮັດໃຫ້ RAM ຂອງທ່ານລຸດລົງ. ມື້ ໜຶ່ງ ສຳ ລັບເຫດຜົນໃດກໍ່ຕາມ, ອາດຈະຫຼາຍກວ່າທີ່ຜູ້ໃຊ້ຄາດຫວັງຢູ່ໃນເວັບໄຊທ໌ຂອງທ່ານແລະຊອກຫາຊັບພະຍາກອນຈາກ server ຂອງທ່ານ.
ໃນເວລາດຽວກັນໃຊ້ເວລາສະຄິບທີ່ ກຳ ນົດແລະ ດຳ ເນີນການແລະ ກຳ ຈັດທຸກຢ່າງໃນ cache ດຽວນີ້ຜູ້ໃຊ້ທັງ ໝົດ ກຳ ລັງເກັບເອົາຂໍ້ມູນຈາກ disk. ມັນຈະສົ່ງຜົນໃຫ້ server ລົ້ມລະລາຍແລະເຮັດໃຫ້ຖານຂໍ້ມູນເສີຍຫາຍ. ດັ່ງນັ້ນຈະແຈ້ງ ram-cache ພຽງແຕ່ໃນເວລາທີ່ຕ້ອງການ, ແລະຮູ້ຂັ້ນຕອນຕີນຂອງທ່ານ, ທ່ານຈະເປັນຜູ້ບໍລິຫານລະບົບສິນຄ້າ Cult.
ຖ້າທ່ານຕ້ອງການລ້າງພື້ນທີ່ Swap, ທ່ານອາດຈະມັກ ດຳ ເນີນການ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້.
# swapoff -a && swapon -a
ນອກນັ້ນທ່ານຍັງອາດຈະເພີ່ມ ຄຳ ສັ່ງຂ້າງເທິງໃສ່ກັບ cron script ຂ້າງເທິງ, ຫຼັງຈາກເຂົ້າໃຈທຸກໆຄວາມສ່ຽງທີ່ກ່ຽວຂ້ອງ.
ດຽວນີ້ພວກເຮົາຈະລວມ ຄຳ ສັ່ງທັງສອງຂ້າງເທິງມາເປັນ ຄຳ ສັ່ງ ໜຶ່ງ ດຽວເພື່ອເຮັດໃຫ້ຂຽນທີ່ຖືກຕ້ອງເພື່ອ ກຳ ຈັດ RAM Cache ແລະ Swap Space.
# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared' OR $ su -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root
ຫຼັງຈາກທົດສອບທັງສອງ ຄຳ ສັ່ງຂ້າງເທິງ, ພວກເຮົາຈະ ດຳ ເນີນການ ຄຳ ສັ່ງ“ free -h” ກ່ອນແລະຫຼັງຈາກແລ່ນ script ແລະຈະກວດເຊັກ cache.
ທັງ ໝົດ ນີ້ ສຳ ລັບດຽວນີ້, ຖ້າທ່ານມັກບົດຄວາມ, ຢ່າລືມໃຫ້ ຄຳ ຕິຊົມທີ່ມີຄຸນຄ່າຂອງທ່ານໃນ ຄຳ ເຫັນເພື່ອແຈ້ງໃຫ້ພວກເຮົາຮູ້, ສິ່ງທີ່ທ່ານຄິດວ່າມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະລຶບລ້າງ ram cache ແລະ buffer ໃນການຜະລິດແລະວິສາຫະກິດບໍ?