Server saya memiliki 2GB RAM dan 120GB SSD, ditambah beberapa array RAID untuk penyimpanan. OS adalah Debian 8 (Linux 3.16).
Saya memiliki aplikasi intens MySQL yang tmpdir
= /run/mysqld
, yang tmpfs
dikonfigurasi oleh Debian melalui /etc/default/tmpfs
:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
Ini dulu 20%VM
, yaitu sekitar 384M. Saya berlari melawan beberapa no space left on device
, jadi saya sudah meningkatkannya 40%VM
, tetapi bahkan dengan sekitar 763M masih terlalu kecil.
Sekarang saya sekarang saya harus menambahkan lebih banyak RAM, tetapi karena penasaran, saya ingin tahu batas di sini.
/dev/sdd1
sudah terpasang/
memiliki sekitar 50GB gratis, dan cukup cepat (Samsung 850 EVO SSD)/dev/sdd5
adalah partisi swap saya, 3.7G (ID tipe fdisk 82)TMPFS_SIZE
diatur ke40%VM
, artinya/run
763M
Sekarang saya tahu bahwa tmpfs dapat bertukar, yang baik untuk saya. Saya ingin MySQL menulis ke RAM kapan pun memungkinkan, tetapi jika membutuhkan lebih banyak memori, saya dapat memungkinkan sistem untuk menukarnya di SSD.
Jadi dengan pengaturan saya, bisakah saya mendorong /run
untuk menjadi:
- 300 juta besar? Iya. Itu standarnya.
- 1.5GB besar? Ya, coba, MySQL menggunakan hingga 1,3GB di atasnya dan sistem bekerja seperti pesona. Tapi itu masih kurang dari setengah memori fisik + partisi swap.
- 2.5GB besar? Ini lebih dari memori fisik, tetapi kurang dari setengah memori fisik + partisi swap saya.
- 4GB besar? Ini akan cocok dengan setengah fisik + swap
- Lebih? suka 10GB? dapatkah menggunakan ruang kosong
/
untuk bertukar lebih banyak?
Saya kira aturan praktis untuk keamanan adalah TMPFS_SIZE
tidak lebih besar dari swap + setengah memori fisik. Bisakah saya melampaui ini tanpa meningkatkan partisi swap?
Juga, apakah mungkin untuk menempatkan 200%VM
di /etc/default/tmpfs
? Saya sudah membaca tmpfs(5)
tanpa mengetahui apakah saya bisa memberi> 100% pada ini.
Terakhir, haruskah saya melakukannya /etc/fstab
dan tidak menyentuh /etc/default/tmpfs
?
(untuk mengetahui bahwa saya hanya melakukannya mount -o remount
, saya belum me-reboot server)
Sunting: untuk pertanyaan terakhir, saya tahu itu dapat / dapat dimodifikasi oleh /etc/fstab
(lihat kutipan di bawah dari halaman manual), namun saya ingin mengetahui praktik terbaik, karena saya belum pernah menyentuh apa pun /etc/default
sejauh ini.
Opsi pemasangan yang lebih kompleks dapat digunakan dengan membuat entri yang sesuai di / etc / fstab.
Jawaban:
Saya pikir saya bisa mengujinya, jadi saya berlari:
Bekerja seperti pesona:
Jadi saya mengisinya sedikit:
Hasil:
Sistem masih berjalan dan berjalan. Ketersediaan swap turun, yang membuktikannya digunakan:
/run
Total swap dikurangi dengan jumlah yang diambil oleh
/run
.Saya akan menguji 10GB pada VM, karena saya tidak tahu apakah kernel akan menolak remount atau hanya memiliki perilaku yang tidak terduga.
Saya masih mencari jawaban yang sebenarnya, tetapi cara pragmatis menunjukkannya berhasil.
sumber