linux进程打开链接数,Linux 进程打开最大文件连接数Too many open files

首先出现这个提示的原因:应用程序打开的文件数量超过了系统设定值。

如何查看当前系统每个用户最大允许打开文件数量:

[root@registry ~]# ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 3820

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 1024

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 8192

cpu time (seconds, -t) unlimited

max user processes (-u) 3820

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

或者

[root@registry ~]# ulimit -n

1024

其中 open files (-n) 1024 表示每个用户最大允许打开的文件数量是1024

#查看一下当前已有的连接数,以此来判断open files 为1024 是否足够

[root@registry ~]# lsof -n |awk '{print$2}'|sort |uniq -c |sort -nr |more

590 5458

445 1065

306 638

267 770

190 5682

189 5457

158 704

130 1194

117 681

81 1263

68 5419

66 640

62 1

60 5677

57 678

55 1067

51 9036

51 1196

48 5698

44 677

44 470

38 494

32 637

29 4430

20 4614

17 9250

14 4566

12 9256

12 9251

11 9254

11 9252

10 9255

10 693

9 9253

3 92

3 9037

3 9033

3 9

3 8964

3 8

3 726

其中第一列是打开的文件句柄数量,第二列是进程id号

通过句柄数量最多的进程,查看是哪个应用程序打开了最多的文件句柄,通过命令:

[root@registry ~]# ps -aef |grep PID

设置open files 数值的方法

1.临时设置方法

[root@registry ~]# ulimit -n 4096

[root@registry ~]# ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 3820

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 4096

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 8192

cpu time (seconds, -t) unlimited

max user processes (-u) 3820

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

这样就可以把当前用户的最大允许打开文件数量设置为4096,但这种设置方法在重启后会还原为默认值。

2.永久设置方法

[root@registry ~]# vim /etc/security/limits.conf

# End of file

root soft nofile 65535

root hard nofile 65535

* soft nofile 65535

* hard nofile 65535

在文件末尾添加上述四行,其中后面两行的 * 表示所有的用户,也可以根据需要设置某一个用户,比如www

# End of file

root soft nofile 65535

root hard nofile 65535

www soft nofile 65535

www hard nofile 65535

注销账户,重新登录即可生效。

如果想查看某个进程最大允许打开的文件数量,可通过如下命令查看:

[root@registry ~]# top

top - 15:39:21 up 101 days, 6:26, 1 user, load average: 0.33, 0.57, 0.52

Tasks: 70 total, 1 running, 69 sleeping, 0 stopped, 0 zombie

%Cpu(s): 6.7 us, 0.0 sy, 0.0 ni, 93.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 3881824 total, 111956 free, 3505012 used, 264856 buff/cache

KiB Swap: 2047996 total, 1001156 free, 1046840 used. 123968 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

12872 www 20 0 2738092 743948 2292 S 6.7 19.2 652:05.43 java

1 root 20 0 43380 2244 1352 S 0.0 0.1 4:11.26 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.31 kthreadd

3 root 20 0 0 0 0 S 0.0 0.0 28:18.97 ksoftirqd/0

5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0

8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh

9 root 20 0 0 0 0 S 0.0 0.0 33:52.08 rcu_sched

10 root rt 0 0 0 0 S 0.0 0.0 0:39.61 watchdog/0

12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs

13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns

14 root 20 0 0 0 0 S 0.0 0.0 0:07.72 khungtaskd

15 root 0 -20 0 0 0 S 0.0 0.0 0:00.18 writeback

16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd

17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset

18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd

19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md

25 root 20 0 0 0 0 S 0.0 0.0 12:21.57 kswapd0

26 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd

27 root 39 19 0 0 0 S 0.0 0.0 0:17.32 khugepaged

28 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto

36 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld

38 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kmpath_rdacd

39 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kpsmoused

40 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ipv6_addrconf

59 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq

101 root 20 0 0 0 0 S 0.0 0.0 0:03.48 kauditd

225 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ata_sff

233 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0

234 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0

235 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1

236 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_1

240 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ttm_swap

252 root 0 -20 0 0 0 S 0.0 0.0 1:07.64 kworker/0:1H

257 root 20 0 0 0 0 S 0.0 0.0 3:12.26 jbd2/vda1-8

258 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ext4-rsv-conver

325 root 20 0 119080 5460 5316 S 0.0 0.1 5:27.58 systemd-journal

354 root 20 0 44032 8 4 S 0.0 0.0 0:00.08 systemd-udevd

[root@registry ~]# cat /proc/12872/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 65535 65535 processes

Max open files 65535 65535 files

Max locked memory 65536 65536 bytes

Max address space unlimited unlimited bytes

Max file locks unlimited unlimited locks

Max pending signals 15089 15089 signals

Max msgqueue size 819200 819200 bytes

Max nice priority 0 0

Max realtime priority 0 0

Max realtime timeout unlimited unlimited us

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值