Dengan asumsi sistem OLTP produksi dengan tabel terutama InnoDB
- Apa saja gejala umum dari sistem yang salah konfigurasi / salah konfigurasi?
- Parameter konfigurasi apa yang paling sering Anda ubah dari standarnya?
- Bagaimana Anda melihat potensi kemacetan sebelum ada masalah?
- Bagaimana Anda mengenali dan memecahkan masalah yang aktif?
Anekdot yang merinci status
variabel dan diagnostik tertentu akan dihargai.
mysql
performance
innodb
Riedsio
sumber
sumber
Jawaban:
Berikut ini adalah artikel yang bagus tentang penyetelan InnoDB dari Sun's Jenny Chen - dia banyak menulis blog tentang MySQL, beberapa di antaranya adalah khusus Solaris (misalnya menggunakan DTrace ) tetapi seluruh blog penuh dengan berita menarik.
sumber
Menariknya, di MySQL 5.5, Anda sekarang dapat memiliki beberapa kolam buffer innodb.
Parameter yang Anda pedulikan adalah
Dalam sekitar satu bulan, saya dijadwalkan untuk mengimplementasikan 112 kolam buffer innodb untuk klien. Saya akan memberi tahu Anda bagaimana hasilnya.
UPDATE 2011-02-27 21:57 EDT
Saya menemukan nilai maks untuk innodb_buffer_pool_instances adalah 64, saya memutuskan untuk mengkonfigurasi 144 GB, jadi saya menetapkan innodb_buffer_pool_instances menjadi 18 dan innodb_buffer_pool_size menjadi 8. Saya saat ini memuat server dengan 450GB
UPDATE 2011-04-28 13:44 EDT
Saya mencoba beberapa Kolam Buffer InnoDB. Ada terlalu banyak penguncian threading dan pertikaian. Saya mengubah ke Buffer Pool + pengaturan 162GB tunggal read_io_threads dan write_io_threads menjadi 64 (nilai maksimum). Ini bekerja jauh lebih baik.
UPDATE 2012-07-03 17:27 EDT
Saya belajar sesuatu yang luar biasa tentang MySQL. Jika Anda mengalokasikan satu Buffer Pool InnoDB monolitik tunggal yang lebih besar dari Total Installed Dibagi Dengan Jumlah CPU Fisik , Anda akan menghasut OS untuk pertukaran memori interval reguler karena Pool Buffer InnoDB penuh. Opsi MySQL 5.5 yang dikenal sebagai innodb_buffer_pool_instances dapat digunakan untuk membagi kumpulan buffer. Kemarin, saya menerapkan ini dengan benar untuk klien yang saya sebutkan dalam jawaban saya tahun lalu. Saya masih memiliki 162GB untuk Buffer Pool klien. Saya telah mengatur opsi innodb_buffer_pool_inances server menjadi 2 karena setiap DB Server adalah dual hexacore. Saya berpikir untuk mengaturnya menjadi 12 tetapi kemudian seorang rekan menunjukkan kepada saya sebuah blog dari Jeremy Cole di MySQL dan Swappiness. Setelah membacanya, saya langsung mempraktikkannya untuk klien saya. Saya menjalankan perintah ini
Saya melihat pemetaan 192GB RAM server sebagai 96GB untuk setiap inti fisik. Oleh karena itu, saya mengatur innodb_buffer_pool_inances ke 2. Semuanya terlihat baik sekarang. Saya akan memperbarui jawaban saya untuk melihat bagaimana ini mempengaruhi pertukaran memori untuk 2 bulan berikutnya.
sumber
Anda mungkin ingin menjelajahi sumber daya berikut:
sumber
Pertama-tama tingkatkan Ukuran Pool Buffer InnoDB default di my.cnf (saya yakin defaultnya adalah 8MB)
Anda mungkin harus mengatur ini ke 75% dari ukuran RAM Anda (secara umum)
sumber
konfigurasi memori
sumber