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
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.
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.