ວິທີການລຶບລ້າງ 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 ໃນການຜະລິດແລະວິສາຫະກິດບໍ?