导航:首页 > 文件类型 > linux进程打开的文件数

linux进程打开的文件数

发布时间:2023-01-22 04:53:42

linux系统中如何查看真实的可支持的最大文件打开数

在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。
对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有 点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
在系统访问高峰时间以root用户执行上面的脚本,可能出现的结果如下:
# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
131 24204
57 24244
57 24231
56 24264
其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。
ps -aef |grep 24204
mysql 24204 24162 99 16:15 ? 00:24:25 /usr/sbin/mysqld
哦,原来是mysql进程打开最多文件句柄数量。但是他目前只打开了131个文件句柄数量,远远底于系统默认值1024。
但是如果系统并发特别大,尤其是squid服务器,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:
ulimit -HSn 4096
以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄 数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后。

⑵ linux 一个进程最多打开多少个文件

1、在linux系统中,理论上一个进程可以打开的文件数可以通过如下命令查找到。在终端执行:ulimit -a命令,找到open files一行即可。

2、这个值只是一个理论值,随着你的系统硬件资源而变化,如果配置低,可能远达不到这个值,如果系统配置很高级,也可以设置增加这个值。

⑶ Linux查看进程打开多少文件描述符命令

1、当linux打开一个文抄件的时候,Linux内核会为每一个进程在/proc/ 建立一个以其pid
为名的目录用来保存进程的相关信息,而其子目录fd保存的是该进程打开的所有文件的fd(fd:file descriptor)。
2、例如/proc/13844/fd/目录(13844为pid)
3、ps -ef|grep java
root 13884 1 0 Aug15 ? 08:51:38 /doyoo/jdk1.8/bin/java
4、ll /proc/13884/fd

⑷ linux默认情况下,一个进程最多能打开多少文件

现在一般能打开64个。
文件描述符的范围是0 ~ O P E N _ M A X 。早期的U N I X版本采用的上限值是1 9 (允许每个进程打开2 0个文件),现在很多系统则将其增加至6 3。

⑸ 怎样查看linux进程打开的文件数

Linux文件数打开数复
查看当前系统最大的制文件打开数,
在linux终端中输入ulimit -a
“open files”参数选项后面的数值就是当前系统支持的最大打开文件数

修改linux最大文件打开数
如果要修改linux最大文件打开数,可以通过参数命令 unlimit -n 后面接需要设置的文件数量。
设置好之后,再次查看 unlimit -a 你会发现已经设置为新的数量了

设置好之后,再次编辑修改重启设置的服务,已经没有刚刚那个1024文件数限制的报错提示

其他修改方法
除此之外,如果针对不同的用户。也可以通过编辑修改 /etc/rc.local文件设置环境变量,添加 unlimit -n
,重启之后一般就自动设置好了

查看系统句柄文件数
当前系统文件句柄的最大数目,只用于查看,不能设置修改
cat /proc/sys/fs/file-max

查看进程打开文件数
如果需要查看所有进程的文件打开数,命令lsof |wc -l

⑹ linux 系统统计进程打开文件数方法

1 打开文件数各参数含义

参考  https://blog.csdn.net/xifeijian/article/details/9088137

查看某进程打开文件数

need-to-insert-img

2 统计文件所有进程文件数

lsof | awk '{print $2,$1}' | sort | uniq -c | sort -rn >> b.txt

need-to-insert-img

3 统计pid 进程打开的文件数

lsof -p pid

need-to-insert-img

4 统计pid 进程打开所有的文件数

lsof  |  awk "{print $NF}" | grep 10555  > proct.txt

need-to-insert-img

5 分析pid 进程打开文件数连接  排序 和 统计

awk '{print $NF}' proct.txt |sort |uniq -c |sort -nr > sort2.txt

need-to-insert-img

⑺ linux默认情况下,一个进程最多能打开多少文件

linux
系统中单个进程的最大线程数有其最大的限制
pthread_threads_max
这个限制可以在
/usr/include/bits/local_lim.h
中查看

linuxthreads
这个值一般专是
1024,对于
nptl
则没有属硬性的限制,仅仅受限于系统的资源
1024,是系统默认的能打开fd的最大值
修改的话需要重新编译内核

⑻ Linux的too many open files解析

Linux中如果一个进程打开文件或者socket连接过多,有没有及时处理和关闭掉文件或连接,当该进程打开文件的数量超过open files的数量时候,就会报too many open files的错误

Linux 的open files 是在一个同一个进程里限制的,当然也有全局的限制(查看/proc/sys/fs/file-max文件),ulimit -a pid命令可以看到open files进程级别限制的大小。

如果当前open files配置的是1024,则这个进程最多只能打开1024个文件,/proc/PID/fd 目录下的打开文件描述符的数量不会超过1024, 使用 lsof -p PId | wc -l 来查看进程打开的文件数, 超过1024则报too many open files的错误,这时候其他进程仍然可以打开文件,进程之间互不影响。

可以临时通过 ulimit -n 4096 这样设置 open files为4096,然后在同一个用户session下重新启动程序。这样的设置只能在Session级别生效,如果切换用户或者切换shell session就失效了。如果要永久生效,需要修改/etc/security/limits.conf文件,在文件末尾添加下列参数并重启机器:

noproc 是代表最大进程数

Golang等动态GC的语言,会通过GC来回收没有正确关闭的文件(比如使用完文件后没有调用Close()去关闭释放资源),这样就导致一些已经打开的文件又被GC关闭掉,然后此进程又可以打开另外的文件,从而会使/proc/PID/fd目录下文件描述符会指向不同的文件,可能链接到不同的文件。

通过设置GOGC=off环境变量关闭GO GC, 再执行go程序,此问题解决, /proc/PID/fd目录下的文件描述符一直保持在max open files 数量 1024,同时lsof -p pid|grep REG|wc -l 为1024.

打开文件后一定要记得f.Close()关闭,这样就能避免产生too many open files的报错。

⑼ 怎样查看linux进程打开的文件数

linux系统下查看进程打开文件在/proc下,对应每个进程有一个以进程号命名的目录,该目录下有一个fd目录,该目录下面的每个文件是一个符号连接,其文件名对应该进程占用的一个文件描述符,而连接指向的内容表示文件描述符对应的实际文件,有多少个文件描述符表示该进程打开了多少文件。
另外Linux
默认的进程打开文件上限是1024个,可以通过ulimit
-n查看。很多系统上限可以通过修改/etc/security/limits.conf文件改变,这个文件有详细的注释,对如何修改做了说明。如果希望
把所有用户的进程打开文件上限改为65536,可以加入下面两行

* soft nofile 65535
* hard nofile 65535

还可以只真对某个用户或某个组做修改,具体方法参见文件注释。修改后需要重新启动系统才能生效。学习linux基本命令,推荐《linux就该这么学》!

⑽ Linux操作系统中打开文件数量的查看方法

ulimit -a  查看系统文件打开数

查看所有进程的文件打开数

lsof |wc -l

指定查看某个进程打开的文件数

lsof -p pid |wc -l

修改Linux文件数和进程数 

vim /etc/security/limits.conf

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535

*             代表针对所有用户   

noproc     是代表最大进程数   

nofile     是代表最大文件打开数

ulimit -a   

最大进程数

max user processes (-u) 4096

修改权限

vim /etc/security/limits.d/20-nproc.conf

*          soft    nproc    unlimited

root      soft    nproc    unlimited

阅读全文

与linux进程打开的文件数相关的资料

热点内容
陕西回收贴片机如何编程 浏览:948
以前鲍鱼网站里的小说怎么没了 浏览:267
matlab程序如何调试 浏览:915
ps工程文件怎么发 浏览:95
word文件如何批量插入盖章 浏览:548
jscheckbox 浏览:338
pics规则文件 浏览:644
如何从数据中找出问题和机会 浏览:668
写作投稿在哪个网站好 浏览:895
绝代双骄版本 浏览:380
手机app在哪里找的对象靠谱吗 浏览:919
win10文件默认显示ck方式 浏览:829
如何更改桌面文件图标 浏览:418
word2010如何去掉背景 浏览:632
adp文件如何打开 浏览:531
ug编程怎么导出零件 浏览:586
asp在线文件管理系统 浏览:468
tks文件如何分解 浏览:132
java7tmd32位 浏览:49
网络公司关键词 浏览:925

友情链接