Saya baru-baru ini mengalami masalah dengan meronta-ronta karena kehabisan memori. (VPS saya memiliki total 256 juta)
Saya mencoba untuk menyetel MySQL menggunakan mysqltuner.pl, dan mendapatkan hasil berikut:
-------- Statistik Umum ---------------------------------------- ----------
[-] Periksa versi lompatan untuk skrip MySQLTuner
[OK] Saat ini sedang berjalan didukung versi MySQL 5.0.51a-3ubuntu5.4-log
[OK] Beroperasi pada arsitektur 64-bit
-------- Statistik Mesin Penyimpanan --------------------------------------- ----
[-] Status: + Arsip -BDB -Federated -InnoDB -ISAM -NDBCluster
[-] Data dalam tabel MyISAM: 114M (Tabel: 454)
[!!] Total tabel terfragmentasi: 34
-------- Metrik Kinerja ---------------------------------------- ---------
[-] Naik untuk: 40-an (570 q [14.250 qps], 23 conn, TX: 154K, RX: 23K)
[-] Baca / Tulis: 100% / 0%
[-] Total buffer: 338.0M global + 2.7M per utas (20 utas maksimum)
[!!] Penggunaan memori maksimum: 392.9M (153% RAM terpasang)
[OK] Permintaan lambat: 0% (5/570)
[Oke] Penggunaan tertinggi koneksi yang tersedia: 15% (3/20)
[!!] Ukuran buffer kunci / total indeks MyISAM: 8.0M / 9.4M
[!!] Tingkat hit buffer kunci: 57.1% (7 cache / 3 kali dibaca)
[OK] Efisiensi cache kueri: 21,9% (7 cache / 32 pilihan)
[OK] Kueri cache permintaan per hari: 0
[OK] Mengurutkan yang membutuhkan tabel sementara: 0% (0 macam temp / 1 macam)
[OK] Tabel sementara dibuat di disk: 0% (0 pada disk / 32 total)
[OK] Tingkat hit cache cache: 86% (3 dibuat / 23 koneksi)
[OK] Tingkat hit cache cache: 26% (128 terbuka / 484 dibuka)
[OK] Batas file terbuka yang digunakan: 25% (259 / 1K)
[OK] Kunci meja diperoleh dengan segera: 100% (492 langsung / 492 kunci)
-------- Rekomendasi ----------------------------------------- ------------
Rekomendasi umum:
Jalankan OPTIMIZE TABLE ke tabel defragment untuk kinerja yang lebih baik
MySQL dimulai dalam 24 jam terakhir - rekomendasi mungkin tidak akurat
Kurangi keseluruhan jejak memori MySQL Anda untuk stabilitas sistem
Variabel yang akan disesuaikan:
*** Penggunaan memori maksimum MySQL sangat tinggi ***
*** Tambahkan RAM sebelum meningkatkan variabel buffer MySQL ***
key_buffer_size (> 9,4M)
Tapi saya agak bingung bagaimana cara menurunkan penggunaan memori maksimum? Tampaknya didasarkan pada key_buffer dan max_connections, tetapi harus ada sesuatu yang lain yang terlibat?
my.cnf:
key_buffer = 8M max_allowed_packet = 12M thread_stack = 128K thread_cache_size = 8 max_connections = 20 table_cache = 128 tmp_table_size = 256 juta max_heap_table_size = 256 juta join_buffer_size = 256 ribu query_cache_limit = 8M query_cache_size = 64M
Saya sudah mencoba membaca melalui artikel tuning MySQL, tetapi mereka tampaknya diarahkan pada orang-orang yang sudah tahu apa yang mereka lakukan! Bantuan apa pun akan dihargai. Terima kasih!