MySQL 5.5'te açık dosya sınırını değiştirme


9

Ben mysql 5.5 ile open-files-limit parametresi ile Ubuntu 12.04 üzerinde çalışan bir sorun yaşıyorum.

Son zamanlarda 1024 sınırı nedeniyle bazı problemler fark ettim ve aslında ana sistem sınırı 1024 olarak ayarlandı, bu nedenle /etc/security/limits.conf dosyasını aşağıdakilerle değiştirdim:

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

Bundan sonra kök ve hatta mysql kullanıcı için ulimit değerini kontrol, her ikisi de yeni bir değer döndürdü: 32000, bu yüzden değişiklik zaten yapılmış varsayalım.

Ayrıca my.cnf dosyasındaki değeri değiştirdim, open-files-limit'i 24000 olarak ayarladım, şöyle:

open-files-limit    = 24000

Şimdi garip kısmı geliyor, mysql hizmetini yeniden başlattığınızda ve open_files_limit değişkenini kontrol ettiğimde, hala 1024 olarak ayarlandığını döndürüyor, bu yüzden daha önce (tabii ki), open-files-limit'i kullanmaya çalıştığım aynı sorunları yaşıyorum bunun yerine my.cnf yapılandırma dosyasında open_files_limit, aynı sonuç, AMA hizmeti başlatmak ve yalnızca mysqld (ek parametre yok) kullanarak başlamak için hizmet komutunu geçersiz kılarsam, hizmet başlar ve parametreyi kontrol ettiğimde 32000 ... Bu değeri nereden aldığını bilmiyorum, çünkü my.cnf dosyasında ayarlanmadı ve en azından kendim için değil, komut satırı üzerinden verilmiyor.

Değişikliğin neden çalışmadığı ve normal yolla nasıl çözüleceği hakkında herhangi bir fikir (hizmet yoluyla başlatılıyor ...)?

Yanıtlar:


9

Sonunda sorunu buldum, uptart /etc/security/limits.conf adresinde tanımlanan parametreleri kullanmıyor gibi görünüyor, bu yüzden mysql'i hizmet komutu aracılığıyla başlattığımda (ve böylece, uptart altında), bu tanımlanan sınırları ve kullanımları geçersiz kılar varsayılan 1024.

Çözüm, uptart hizmetini tanımlayan mysql.conf dosyasını değiştirmek, /etc/init/mysql.conf konumunda bulunur ve başlangıç ​​satırından önce aşağıdaki satırları ekler:

# 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

İlk değer geçici sınırı tanımlar, diğeri, sabit sınırı bu satırları ekledikten sonra hizmet my.conf dosyasında tanımlanan değerleri uygulayarak beklendiği gibi çalışır.

Bu sınırlama, / etc / init'te tanımlandığı her bir yeniden başlatma hizmeti için geçerli olmalıdır, bu nedenle herhangi bir hizmetin açık dosya sınırıyla aynı sorunu varsa, bu çözüm de çalışmalıdır.


1
Güzel iş var!
pkhamre

Bu hile yaptı ... acı çeken adam
Chad Scira
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.