ซื้อขายรถยนต์มือสอง

Clear file system memory cache

RAM เต็มแก้ปัญหาแบบไม่ต้องรีบูตเครื่องหรือรีบูต apache วิธีนี้ง่ายสุดๆด้วยคำสั่ง

sync
echo 3 > /proc/sys/vm/drop_caches

วิธีที่เราเช็คว่า Ram หรือเยอะแค่ไหนก็ free -m หากเครื่อง server ใช้ Ram หมดแล้วจะวิ่งไปทำงานที่ swap แทนซึ่งนั้นก็หมายความว่าข้อมูลทุกอย่างถูกเขียนบน Harddisk ปัญหาต่อมาจะทำให้ IO ของเครื่องสูง ซึ่งนั่นก็เป็นสาเหตุของเว็บช้าและ server ล่มตามมา วิธีแก้ปัญหาหากคุณอยู่หน้าเครื่องและคอย monitor ดูตลอดมันก็ไม่มีปัญหาอะไร แต่ถ้าเราไม่อยู่ล่ะทำไง วันนี้ณเดชเอา shell script ง่ายๆมาฝากครับซึ่งเราสามารถตั้งได้ว่าจะให้ restart apache หรือ restart mysql เราก็เปลี่ยนจาก

sync
echo 3 > /proc/sys/vm/drop_caches

เป็นคำสั่ง restart apache เช่น

/etc/init.d/mysqld restart

ก็ได้เช่นกันครับแต่ในตัวอย่างนี้คือจะเคลียร์ไฟล์แคสของระบบออกไปซึ่งก็จะได้แรมกลับคืนมาเหมือนเดิมครับ
ขั้นตอนแรกทำการสร้างไฟล์เพื่อเอาไว้ทำการรัน crontab จากตัวอย่างผมสร้างไฟล์ชื่อ restart_mem หลังจากนั้นก็ใส่ข้อความตามข้างล่างนี้แล้วทำการเชฟไฟล์แล้วเปลี่ยน permission เป็น 777

#!/bin/bash
mem_lmt=7500 # Size in MB
free_mem=$(free | grep "Mem:" | awk '{print $4}')
free_mem=$((free_mem/1024))
#echo $free_mem
if [ $free_mem -lt $mem_lmt ]
then
sync
echo 3 > /proc/sys/vm/drop_caches
echo "Apache and MySQL restarted on `date +'%Y-%m-%d %H:%M:%S'`. Available RAM is " $free_mem "MB" >> /var/log/memchecker.log
else
echo "memory status is safe and free memory is " $free_mem "MB"
fi
mem_lmt=7500 สามารถแก้ไขในส่วนนี้ได้เพราะว่าแต่ล่ะเครื่อง memnory ไม่เท่ากันครับ ตัวนี้มี 8G ครับ
ขั้นตอนต่อมาทำการสร้าง crontab เพื่อทำการรันไฟล์ด้วยคำสั่ง

crontab -e

*/10 * * * * /usr/local/admtools/restart_mem

หลังจากนั้นก็ตั้งเวลาใส่พาทให้ถูกต้องเป็นอันจบขั้นตอนครับ เทคนิคนี้สามารถใช้งานได้ในหลายๆทางซึ่งอยู่ที่การจะนำไปใช้นะครับ ขอให้โชคดี

หมายเหตุ เลือกใช้ได้เลยอยากได้แบบไหน
1. Free pagecache
$ echo 1 > /proc/sys/vm/drop_caches
2. Free dentries and inodes
echo 2 > /proc/sys/vm/drop_caches
3. Free pagecache, dentries and inodes
echo 3 > /proc/sys/vm/drop_caches

Related Posts

You can skip to the end and leave a response. Pinging is currently not allowed.
  • Vfdsha

    Many People like the Louis Vuitton Handbags very much and would consider that the Louis Vuitton Company come from In italy , in fact it is born from paris in France.So you unlidely see real Louis Vuitton Outlet in other city except france. But please don’t worry about that ,if you want to buy a cheap louis vuitton items ,you could search the Louis Vuitton Online in the internet,you can get the cheap louis vuitton handbags anywhere.