คอมพิวเตอร์ของเรามีหน่วยความจำมากกว่าที่เคยมีมา มีโอกาสดีที่สิ่งนี้เป็นความจริงไม่ว่าคุณจะอ่านข้อความนี้เมื่อใด ที่กล่าวว่าไม่ว่าคุณจะมีหน่วยความจำมากแค่ไหนก็ไม่เคยพอ
คุณสามารถแพ็คคอมพิวเตอร์หรือเซิร์ฟเวอร์ของคุณให้เต็ม RAM ที่จะใช้และมีบางสิ่งที่จะใช้งานได้เสมอ ส่วนใหญ่นี่เป็นสิ่งที่ดี ท้ายที่สุดแล้วจุดประสงค์ของ RAM นั้นคืออะไรถ้าคุณไม่ใช้ ในทางกลับกัน หากคุณมีข้อจำกัด หน่วยความจำไม่เพียงพออาจเป็นปัญหาได้
คุณแน่ใจเกี่ยวกับการใช้หน่วยความจำของคุณหรือไม่
ก่อนที่คุณจะเริ่มมองหาการเพิ่มหน่วยความจำ คุณต้องแน่ใจว่ามีบางอย่างใช้งานอยู่จริง เนื่องจากวิธีที่ Linux จัดการกับหน่วยความจำ จึงอาจดูเหมือนว่ามีบางอย่างกำลังใช้หน่วยความจำที่มีอยู่ทั้งหมดของคุณ
ตามที่ Linux Ate My RAM อธิบายไว้ top
คำสั่งที่แสดงว่าคุณมีหน่วยความจำเหลือน้อยอาจไม่ได้หมายถึงสิ่งที่คุณคิดว่ามันหมายถึง ตามค่าเริ่มต้น Linux จะแยกหน่วยความจำที่ไม่ได้ใช้สำหรับการแคชดิสก์ ซึ่งช่วยให้คอมพิวเตอร์ของคุณเร็วขึ้น
ที่กล่าวว่าอาจมีบริการหรือแอปพลิเคชันที่มีปัญหาบางอย่างที่ใช้ RAM มากกว่าที่ควรจะเป็น
การวินิจฉัยการใช้หน่วยความจำ
ในการวินิจฉัยหน่วยความจำ คุณจะต้องใช้คำสั่งต่างๆ สองสามคำสั่ง top
คำสั่งนั้นดีสำหรับการดูแอพพลิเคชั่นที่อาจกิน RAM มากเกินไป – อย่าพึ่งพา PhysMem ที่แสดงที่ด้านบนเพียงอย่างเดียว
คุณสามารถใช้ free
และ ps
คำสั่งเพื่อช่วยวินิจฉัยปัญหา RAM ต่างๆ ด้วย การใช้งาน free
, เพียงเรียกใช้สิ่งต่อไปนี้:
free -m
คุณจะสังเกตได้ว่าตัวเลข "รวม" และ "ใช้แล้ว" จะใกล้เคียงกัน ดังที่เราได้กล่าวไว้ข้างต้น นี่เป็นพฤติกรรมปกติสำหรับ Linux ดังนั้นอย่ากังวลกับสิ่งนี้ สิ่งสำคัญที่สุดที่ต้องให้ความสนใจคือส่วน "ใช้แล้ว" ในแถว "บัฟเฟอร์/แคช" เนื่องจากนี่คือสิ่งที่แอปพลิเคชันและบริการใช้งานอยู่จริง
คุณสามารถใช้ ps
คล้ายกับ top
เพื่อกำหนดว่าแอพพลิเคชั่นใดใช้หน่วยความจำมากที่สุด เมื่อต้องการทำเช่นนี้ เพียงเรียกใช้สิ่งต่อไปนี้:
ps aux
นี่จะแสดงให้คุณเห็นว่าแอปใดใช้หน่วยความจำมากที่สุดและแสดงรหัสกระบวนการให้คุณเห็น
แก้ไขการใช้หน่วยความจำสูงของคุณ
มีผู้กระทำผิดทั่วไปบางประการเมื่อพูดถึงการใช้หน่วยความจำสูงบน Linux หนึ่งในผู้กระทำผิดหลักคือ Java ไม่ว่าคุณจะใช้สภาพแวดล้อมรันไทม์ของ Java อย่างเป็นทางการหรือทางเลือกที่ GNU จัดหา การทำเช่นนี้อาจทำให้เกิดปัญหาได้ หากคุณพบสิ่งนี้บนเซิร์ฟเวอร์ อาจเกิดจาก JBoss หรือ Tomcat คุณจะพบไฟล์การกำหนดค่าของพวกเขาที่ใดที่หนึ่งดังต่อไปนี้:
/usr/local/jboss/bin/run.conf /usr/local/tomcat/bin/setenv.sh
ผู้ร้ายรายอื่นอาจเป็น Apache หรือ MySQL อยู่นอกเหนือขอบเขตของบทความนี้เพื่อแสดงวิธีกำหนดค่าเหล่านี้อย่างชัดเจน แต่คุณสามารถตรวจสอบไฟล์บันทึกเพื่อหาข้อผิดพลาดหรือคำเตือนจากบริการเหล่านี้ได้
บทสรุป
หากคุณกำลังมองหาประสิทธิภาพที่เพิ่มขึ้นหรือเพื่อแก้ไขปัญหา หน่วยความจำอาจไม่ใช่ตัวการเสมอไป ขึ้นอยู่กับสิ่งที่คุณกำลังมองหา แต่โซลูชันของคุณอาจอยู่ในส่วนอื่นของคอมพิวเตอร์ทั้งหมด อย่าลืมจำสิ่งนี้ไว้
ไม่ต้องกังวล ไม่ว่าปัญหาคืออะไร เราสามารถช่วยคุณได้ หากเดสก์ท็อป แล็ปท็อป หรือเซิร์ฟเวอร์ของคุณทำงานช้า โปรดดูคำแนะนำของเราเพื่อค้นหาสาเหตุ แม้ว่าจะไม่สามารถแก้ปัญหาของคุณได้ แต่ก็อาจช่วยให้คุณค้นหาจุดเริ่มต้นได้