Mengubah batas file-terbuka di mysql 5.5

9

Saya mengalami masalah dengan mysql 5.5 yang berjalan di Ubuntu 12.04 dengan parameter buka-file-batas.

Saya baru-baru ini melihat beberapa masalah karena batas 1024, dan sebenarnya batas sistem utama diatur ke 1024, jadi saya memodifikasi /etc/security/limits.conf dengan yang berikut:

* soft nofile 32000
* hard nofile 32000
root soft nofile 32000
root hard nofile 32000

Setelah itu saya memeriksa nilai ulimit untuk root dan bahkan untuk pengguna mysql, keduanya mengembalikan nilai baru: 32000, jadi saya menganggap perubahan sudah dilakukan.

Saya juga mengubah nilai pada file my.cnf, menetapkan batas file-terbuka menjadi 24000, seperti ini:

open-files-limit    = 24000

Sekarang sampai pada bagian yang aneh, ketika saya me-restart layanan mysql dan memeriksa variabel open_files_limit, ia mengembalikan bahwa itu masih diatur ke 1024, jadi saya mengalami masalah yang sama yang sebelumnya (jelas), saya mencoba menggunakan open-files-limit bukannya open_files_limit di file config my.cnf, hasil yang sama, TETAPI jika saya menimpa perintah layanan untuk memulai layanan dan mulai hanya menggunakan mysqld (tidak ada parameter tambahan), layanan dimulai dan ketika saya memeriksa parameter itu mengembalikan 32000 ... Saya tidak tahu dari mana nilai itu diambil, karena tidak disetel di my.cnf dan itu tidak diberikan melalui baris perintah, setidaknya, bukan untuk saya sendiri.

Ada gagasan tentang mengapa itu tidak bekerja perubahan dan bagaimana menyelesaikannya dengan cara normal (meluncurkannya melalui layanan ...)?

DavidV
sumber

Jawaban:

9

Saya akhirnya menemukan masalah, tampaknya pemula tidak menggunakan parameter yang ditentukan di /etc/security/limits.conf, jadi ketika saya meluncurkan mysql melalui perintah layanan (dan, di bawah pemula), itu menimpa batas dan penggunaan yang ditentukan default 1024.

Solusinya adalah memodifikasi file mysql.conf yang mendefinisikan layanan pemula, ini terletak di /etc/init/mysql.conf dan tambahkan baris berikut sebelum blok pra-mulai:

# NB: Upstart scripts do not respect
# /etc/security/limits.conf, so the open-file limits
# settings need to be applied here.
limit nofile 32000 32000
limit nproc 32000 32000

Nilai pertama mendefinisikan batas lunak, yang lain, batas keras, setelah menambahkan garis-garis tersebut, layanan berfungsi seperti yang diharapkan menerapkan nilai yang ditentukan pada file my.conf.

Batasan ini harus berlaku untuk setiap layanan pemula yang ditentukan di / etc / init, jadi jika ada layanan yang memiliki masalah yang sama dengan batas file terbuka, solusi ini juga akan berfungsi.

DavidV
sumber
1
Kerja bagus di sana!
pkhamre
Ini berhasil ... pria yang
menyebalkan