Membeli paket yang lebih besar itu cepat, dan kadang memang benar. Ia juga cara paling umum membelanjakan uang untuk masalah yang sebenarnya adalah sebuah indeks yang hilang atau satu panggilan API yang lambat. Sepuluh menit pengukuran memutuskannya.
Apakah memori Anda memang habis
free -h
vmstat 1 5
Di vmstat, baca kolom si dan so: halaman yang masuk dan keluar swap per detik. Angka bukan nol yang bertahan berarti mesinnya sungguh kekurangan memori. Angka nol berarti tidak, apa pun kata kolom free.
Linux memakai memori bebas sebagai singgahan cakram dengan sengaja. Mesin yang melaporkan nyaris tak punya memori bebas tetapi tak bertukar ke cakram itu sehat - lihat memori, swap, dan kapan swap menjadi gejala.
Lalu biasanya apa sebenarnya
- Sebuah kueri yang lambat. Satu kueri tanpa indeks pada tabel yang terus membesar. Lihat catatan kueri lambat.
- Menunggu sesuatu yang lain - sebuah API pembayaran, sebuah server surel, sebuah umpan jauh - dan di situ servernya menganggur, bukan sibuk.
- Cakramnya. iowait yang tinggi di top berarti penyimpanannya yang jadi batas; memori tambahan hanya menolong dengan menyinggahkan di sekitarnya.
- Satu inti prosesor mentok oleh pekerjaan berutas tunggal sementara yang lain duduk menganggur.
Baca keduanya terpisah
top -b -n1 | head -15 # load, iowait, what is busy
iostat -x 1 3 # disk latency and utilisation
ss -s # connection counts
Kapan menambah memori MEMANG jawabannya
- Pertukaran ke cakram yang terus-menerus pada lalu lintas biasa.
- Himpunan kerja basis data yang lebih besar daripada yang bisa Anda berikan ke kolam penyangganya - lihat innodb_buffer_pool_size.
- Kolam PHP yang tak bisa Anda buat cukup besar untuk lalu lintas Anda tanpa melampaui memori.
Ukur dulu, tingkatkan kemudian. Mengganti paket itu mudah dilakukan dan canggung dibatalkan, dan kueri yang lambat itu tetap ada sesudahnya - kini di atas mesin yang lebih mahal.
