Linuxのリソース制約プロファイル/etc/security/limits.confをあるユーザプロセスの数は、Linuxシステムの安定性のために非常に重要である制限します。
limits.confファイルは、ユーザーが使用できるファイルの最大数、最大スレッド、最大メモリおよびその他のリソースの使用量を制限します。
次の形式limits.confを:
username|@groupname type resource limit
username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
タイプ:
soft,hard 和 - soft 指的是当前系统生效的设置值。 hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。 - 表明同时设置了 soft 和 hard 的值。
資源:
core - 限制内核文件的大小 date - 最大数据大小 fsize - 最大文件大小 memlock - 最大锁定内存地址空间 nofile - 打开文件的最大数目 rss - 最大持久设置大小 stack - 最大栈大小 cpu - 以分钟为单位的最多 CPU 时间 noproc - 进程的最大数目 as - 地址空间限制 maxlogins - 此用户允许登录的最大数目
limits.confを設定ファイルを有効にするには、それは確かにpam_limits.soファイルがスタートアップファイルに追加されていることを確認しなければなりません。ビュー/etc/pam.d/loginファイルのとおりです。
session required /lib/security/pam_limits.so
* soft nofile 655350 #任何用户可以打开的最大的文件描述符数量,默认1024,这里的数值会限制tcp连接
* hard nofile 655350
* soft nproc 655350 #任何用户可以打开的最大进程数
* hard nproc 650000
@student hard nofile 65535
@student soft nofile 4096
@student hard nproc 50 #学生组中的任何人不能拥有超过50个进程,并且会在拥有30个进程时发出警告
@student soft nproc 30
- ハードとソフト二つの値は、それがどういう意味を表しますか?
ソフトが警告値ですが、ハード本当の意味の閾値であり、誤差が超過します
まず、ユーザーが作成したすべてのプロセスの数:
$ ps h -Led -o user | sort | uniq -c | sort -n
2 shtermuser
11 zabbix
206 elasticsearch
490 root
第二に、システムのオープンファイル記述子の最大数:
- ビュー
$ cat /proc/sys/fs/file-max
6553600
- セットアップ
$ vim /etc/sysctl.conf
fs.file-max = 6553600
第三に、開いているファイル記述子プロセスの最大数
- チェックのulimitがデフォルトのビューがソフトリミットは-N
$ ulimit -n
170000
- ビューのハードリミット
$ ulimit -Hn
170000
- セットアップ
- 一時的な設定
#通过ulimit -Sn设置最大打开文件描述符数的soft limit,注意soft limit必须小于hard limit
$ ulimit -Sn 160000
#同时设置soft limit和hard limit。对于非root用户只能设置比原来小的hard limit。
$ ulimit -n 180000
- 恒久的に設定します
#root权限下,在/etc/security/limits.conf中添加如下两行,表示所有用户最大打开文件描述符数的soft limit为102400,hard limit为104800。重启生效
* soft nofile 102400
* hard nofile 104800
- 注:もう一つのポイントNOFILEハードリミットセットノートへのハードリミットはハードリミットがnr_openより大きい場合、キャンセルはログインしていないだろう、を/ proc / sys / fs / nr_openを超えることはできませんです。
第四に、現在のシステムを表示するために使用されるオープンファイル記述子の数
$ cat /proc/sys/fs/file-nr
5664 0 186405
最初の番号が使用されるシステムによって割り当てられたオープンファイル記述子の現在の数を表し、第二の番号が割り当てられる(もはや使用)が解放され、第3の数は、ファイル-maxに等しいです。
第五に、我々は、NOFILE設定することNOFILE最大値を決定するためにどのようにして、後/etc/security/limits.confをしてパラメータの意味を知っています。
解決策:使用が少ないシステムで許可された最大値より場合、-n testコマンドをulimt設定し、最大値よりも大きい場合、システムはエラーを促すメッセージが表示されます。
$ ulimit -n 1100000
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 1048576
$ ulimit -n 1048577
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 1048575
$ ulimit -n 1048576
六は、ulimit -a / N / H / S何を意味しています
ulimitの-aは、現在のすべてのリソース制限を表示します
ulimitの-Hは、ハードウェアリソースの制約を設定します
ulimitのセットアップソフトウェアのリソース制限を-S
ulimitのは、開いているファイル記述子プロセスの最大数を設定-n
プログラム番号のulimit -u <プログラム番号>ユーザーが開くことができます
概要
。すべてのプロセスのオープン・ファイル記述子の数はを/ proc / sys / fs /ファイル-MAXを超えることはできません。
B。開いているファイルの数が1つのプロセスがソフトリミットNOFILEにおけるユーザ制限を超えることはできないディスクリプタ
C。NOFILEソフト制限はハード制限を超えることはできません
D。NOFILEハード制限値を超えないを/ proc / sys / fs / nr_open