web-dev-qa-db-fra.com

Comment augmenter le nombre maximum de fichiers ouverts pour le service memcached

Avec ulimit -n, je peux définir un nombre maximum de fichiers ouverts basé sur Shell.

Pour rendre cette valeur persistante, je peux l'éditer dans /etc/security/limits.conf et redémarrer la boîte Ubuntu 12.10, voici la configuration.

*               soft    nofile          10240
*               hard    nofile          10240
root            soft    nofile          10240
root            hard    nofile          10240

mais la valeur ci-dessus n'est pas appliquée au service memcached, comment rendre "max open files 10240" au service memcached.

même après la définition de limits.conf, le memcached reste affiché

xx@xx:~$ ps aux|grep mem
mysql     2044  0.0  0.0 327436  1260 ?        Sl   17:09   0:00 /usr/bin/memcached -vv -m 256 -p 11211 -u mysql -l 0.0.0.0

xx@xx:~$ cat /proc/2044/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             30402                30402                processes
Max open files            1024                 1024                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       30402                30402                signals
Max msgqueue size         819200               819200               bytes
Max Nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

laissez-moi savoir comment augmenter le nombre maximal de fichiers ouverts pour le service memcached

2
targetsmart

Dans la configuration memcache, définissez le nombre maximal de connexions ouvertes à l'aide de:

-c 10240

Vous pouvez vérifier si cela est réellement nécessaire ou non en vérifiant sur listen_disabled_num lors de l'exécution:

echo stats | nc localhost 11211

Vous devriez voir cette valeur supérieure à 0 si le nombre maximal de connexions pose problème.

5
John Foley

Il semble que le processus memcached soit lancé par l'utilisateur mysql. Essayez d'ajouter explicitement des règles dans limits.conf à cet utilisateur (* devrait s'appliquer à tous les utilisateurs sauf à root, mais cela ne coûte pas cher d'essayer ...).

mysql            soft    nofile          10240
mysql            hard    nofile          10240

De plus, je pense que ces limites ne sont appliquées que si PAM les charge. Vérifiez si vous avez la ligne suivante dans /etc/pam.d/common-session

session required pam_limits.so

Sinon ajoutez-le à la fin. Après cela, vous devrez peut-être redémarrer pour voir les modifications appliquées.

2
Salem