Description du problème
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Solution 1 : modifier directement le fichier de valeurs d'allocation limits.conf et le rendre permanent
vim /etc/security/limits.conf
Ajouter ce qui suit à la fin
smis soft nproc 16384
smis hard nproc 16384
smis soft nofile 65536
smis hard nofile 65536
smis soft memlock 4000000
smis hard memlock 4000000
Basculez à nouveau vers l'utilisateur smis et le message d'erreur précédent n'apparaît pas.
Il est recommandé de redémarrer le serveur après avoir défini la valeur.
Solution 2 : utilisez la commande ulimit pour modifier
Si vous utilisez la commande ulimit pour le modifier, il deviendra invalide après le redémarrage du serveur (modification temporaire)
ulimit est utilisé pour limiter les ressources occupées par le processus de démarrage du shell
- Les types de limites suivants sont pris en charge : la taille du fichier de noyau créé, la taille du bloc de données de processus, la taille du fichier créé par le processus shell, la taille du verrou de mémoire et la taille de l'ensemble de mémoire résidente
- Ainsi que le nombre de descripteurs de fichiers ouverts, la taille maximale de la pile d'allocation, le temps CPU, le nombre maximal de threads pour un seul utilisateur, la mémoire virtuelle maximale qu'un processus shell peut utiliser
- et prise en charge des contraintes de ressources matérielles et logicielles
Utilisez l'utilisateur actuel pour modifier, c'est-à-dire l'utilisateur oracle, nous le changerons en 60000
[smis@localhost config]$ ulimit -n 60000
Vous pouvez voir que la limite de ressources a été modifiée
[smis@localhost config]$ ulimit -a | grep "open files"
open files (-n) 60000
Mais le fichier d'allocation n'a en rien changé
[smis@localhost config]$ cat /etc/security/limits.conf | grep nofile
smis soft nofile 1024
smis hard nofile 65536