เซิร์ฟเวอร์ของฉันมี 2GB RAM และ 120GB SSD รวมทั้งอาร์เรย์ RAID บางส่วนสำหรับจัดเก็บข้อมูล ระบบปฏิบัติการคือ Debian 8 (Linux 3.16)
ฉันมีแอพพลิเคชั่นที่ใช้ MySQL ที่มีtmpdir= /run/mysqldซึ่งtmpfsกำหนดค่าโดย Debian ผ่าน/etc/default/tmpfs:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
สิ่งนี้เคย20%VMเป็นประมาณ 384M ฉันวิ่งแข่งหลายครั้งno space left on deviceดังนั้นฉันจึงเพิ่มมันเป็นถึง40%VMแม้จะมีขนาดประมาณ 763M ก็ยังเล็กเกินไป
ตอนนี้ฉันตอนนี้ฉันควรเพิ่ม RAM เพิ่มเติม แต่จากความอยากรู้อยากเห็นฉันต้องการทราบขีด จำกัด ที่นี่
/dev/sdd1ติดตั้งบน/มีฟรีประมาณ 50GB และค่อนข้างเร็ว (Samsung 850 EVO SSD)/dev/sdd5เป็นพาร์ติชั่นสว็อปของฉันคือ 3.7G (ID ประเภท fdisk คือ 82)TMPFS_SIZEถูกตั้งค่าเป็น40%VMความหมาย/runคือ 763M
ตอนนี้ฉันรู้แล้วว่า tmpfs สามารถแลกเปลี่ยนซึ่งใช้ได้กับฉัน ฉันต้องการให้ MySQL เขียนไปที่ RAM ทุกครั้งที่ทำได้ แต่ถ้าต้องการหน่วยความจำมากกว่านี้ฉันสามารถอนุญาตให้ระบบทำการสลับบน SSD
ดังนั้นด้วยการตั้งค่าของฉันฉันสามารถผลักดัน/runให้เป็น:
- ใหญ่ 300 ล้านใช่ไหม ใช่. นั่นคือค่าเริ่มต้น
- ใหญ่ 1.5GB? ใช่แล้วพยายามใช้ MySQL สูงถึง 1.3GB และระบบทำงานได้อย่างมีเสน่ห์ แต่นั่นยังน้อยกว่าครึ่งหน่วยความจำกายภาพ + พาร์ทิชันสลับ
- ใหญ่ 2.5GB? นี่เป็นมากกว่าหน่วยความจำกายภาพ แต่น้อยกว่าครึ่งหนึ่งของหน่วยความจำกายภาพ + พาร์ทิชัน swap ของฉัน
- 4GB ใหญ่หรือไม่ สิ่งนี้จะพอดีกับการแลกเปลี่ยนทางกายภาพครึ่งหนึ่ง
- มากกว่า? เช่น 10GB มันสามารถใช้พื้นที่ว่างใน
/การแลกเปลี่ยนเพิ่มเติมหรือไม่
ฉันเดาว่ากฎความปลอดภัยต้องมีTMPFS_SIZEขนาดไม่ใหญ่กว่า swap + หน่วยความจำกายภาพครึ่งหนึ่ง ฉันจะไปให้ไกลกว่านี้ได้หรือไม่โดยไม่เพิ่มพาร์ทิชัน swap
นอกจากนี้ยังเป็นไปได้ที่จะใส่200%VMใน/etc/default/tmpfs? ฉันได้อ่านtmpfs(5)โดยไม่ทราบว่าสามารถใส่มากกว่านี้ได้ไหม> 100%
สุดท้ายฉันควรทำมัน/etc/fstabแทนและอย่าแตะต้อง/etc/default/tmpfs?
(รู้ว่าฉันได้ทำไปแล้วเท่านั้นmount -o remountฉันยังไม่ได้รีบูตเซิร์ฟเวอร์)
แก้ไข: สำหรับคำถามสุดท้ายฉันรู้ว่าสามารถ / อาจแก้ไขได้/etc/fstab(ดูข้อความด้านล่างจากหน้า man) แต่ฉันต้องการทราบวิธีปฏิบัติที่ดีที่สุดเพราะฉันไม่เคยสัมผัสอะไร/etc/defaultเลย
ตัวเลือกการเมาท์ที่ซับซ้อนมากขึ้นอาจถูกใช้โดยการสร้างรายการที่เหมาะสมใน / etc / fstab
