คอมพิวเตอร์ของเรามีหน่วยความจำมากกว่าที่เคยมีมาก่อน โอกาสดีที่สิ่งนี้เป็นจริงไม่ว่าคุณจะอ่านเมื่อไร แต่ไม่ว่าจะมีหน่วยความจำมากแค่ไหน ก็ไม่มีวันพอ
คุณสามารถเติม RAM ให้เต็มที่คอมพิวเตอร์หรือเซิร์ฟเวอร์รับได้ และจะมีบางอย่างมาหาใช้มันเสมอ ส่วนใหญ่เป็นเรื่องดี เพราะถ้าไม่ใช้ RAM ให้หมด ทำไมต้องมีมันไว้? แต่หากคุณจำกัด หน่วยความจำหมดอาจเป็นปัญหา
คุณแน่ใจไหมว่าหน่วยความจำถูกใช้จริง?
ก่อนจะหาวิธี釋放หน่วยความจำ คุณต้องแน่ใจว่ามีบางอย่างใช้งานจริง เนื่องจากวิธีที่ Linux จัดการหน่วยความจำ อาจดูเหมือนว่ามีบางอย่างใช้หน่วยความจำทั้งหมดที่มี
ตามที่ Linux Ate My RAM อธิบาย คำสั่ง top แสดงว่าคุณขาดหน่วยความจำ อาจไม่ได้หมายความว่าคุณคิด โดยค่าเริ่มต้น Linux สงวนหน่วยความจำที่ไม่ได้ใช้ไว้สำหรับ Disk Caching ซึ่งช่วยเร่งความเร็วคอมพิวเตอร์จริงๆ
这就是说 ยังอาจมีบริการหรือแอปพลิเคชันที่มีปัญหา ใช้ RAM มากกว่าที่ควรจะเป็น
วินิจฉัยการใช้หน่วยความจำ
เพื่อวินิจฉัยหน่วยความจำ คุณต้องใช้คำสั่งหลายคำสั่ง คำสั่ง top ดูได้ว่าแอปพลิเคชันไหนกิน RAM มากเกินไป - แต่อย่าเชื่อค่า PhysMem ที่แสดงด้านบนอย่างเดียว
คุณสามารถใช้คำสั่ง free และ ps ช่วยวินิจฉัยปัญหา RAM ได้ด้วย ใช้ free โดยรัน:
free -m
คุณจะสังเกตว่าค่า "total" และ "used" จะใกล้เคียงกัน ตามที่กล่าวมา นี่เป็นพฤติกรรมปกติของ Linux อย่ากลัว สิ่งสำคัญที่สุดคือดูส่วน "used" ในแถว "buffers/cached" เพราะนี่คือสิ่งที่แอปพลิเคชันและบริการใช้จริง
คุณใช้ ps คล้าย top เพื่อหาว่าแอปพลิเคชันไหนใช้หน่วยความจำมากที่สุด รัน:
ps aux
จะแสดงว่าแอปไหนใช้หน่วยความจำมากที่สุด พร้อม Process IDs
แก้ไขการใช้หน่วยความจำสูง
มีสาเหตุหลักหลายอย่างสำหรับการใช้หน่วยความจำสูงใน Linux หนึ่งในตัวลักลอบหลักคือ Java ไม่ว่าคุณจะใช้ Java Runtime Environment 官方 หรือตัวเลือก GNU สามารถก่อให้เกิดปัญหาได้ หากเจอบนเซิร์ฟเวอร์ อาจเกิดจาก JBoss หรือ Tomcat คุณจะหาไฟล์การตั้งค่าของพวกมันได้ที่ประมาณนี้:
/usr/local/jboss/bin/run.conf /usr/local/tomcat/bin/setenv.sh
ตัวลักลอบอื่นอาจเป็น Apache หรือ MySQL ขอยกเว้นการแสดงการตั้งค่าที่แน่นอนในบทความนี้ แตคุณสามารถตรวจสอบไฟล์ Log สำหรับข้อผิดพลาดหรือคำเตือนจากบริการเหล่านี้
สรุป
หากคุณมองหาประสิทธิภาพหรือแก้ปัญหา หน่วยความจำอาจไม่ใช่สาเหตุเสมอไป ขึ้นอยู่กับสิ่งที่คุณมองหา แต่วิธีแก้อาจอยู่ในส่วนอื่นของคอมพิวเตอร์ทั้งหมด จงจำเรื่องนี้ไว้
อย่ากลัว ไม่ว่าปัญหาจะเป็นอะไร เราช่วยคุณได้ หากเดสก์ท็อป ลัปท็อป หรือเซิร์ฟเวอร์ทำงานช้า ให้ดูคู่มือหาสาเหตุ แม้จะไม่แก้ปัญหาได้ ก็อาจช่วยบอกว่าเริ่มตรวจสอบจากไหน