linux系统句柄数命令 linux服务器句柄数怎么看

linux 调优--修改文件最大句柄数

最近重启平台后,启动数据流,确发生报错:

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的思礼网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

发现文件打开太多,句柄数不够用了,需要调优linux参数:

首先查看下系统的句柄是多少,用ulimit -a 命令查看

linux默认最大文件句柄数是1024个,当你的服务器在大并发达到极限时,就会报出“too many open files”。

修改linux系统参数:vi /etc/security/limits.conf

*softnofile65536

*hardnofile65536

修改以后保存,注销当前用户,重新登录,执行ulimit -a

Linux之文件句柄

ulimit:

1,查看进程允许打开的最大文件句柄数

ulimit -n

2,设置进程能打开的最大文件句柄数

ulimit -n xxx

-H 指定资源的硬限制

-S 指定资源的软限制

hard 代表当前硬限制

soft 代表当前软件限制

unlimited 代表不限制.

3, 文件限制配置文件

/etc/security/limits.conf

4,文件句柄最大数据配置

配置文件:/proc/sys/fs/file-max

这个参数的默认值和内存大小有关系,可以使用公式:file-max 内存大小/ 10k.

4.1 建议将整个系统的文件句柄值至少设置为 65536

4.2 echo "65536" /proc/sys/fs/file-max

4.3 sysctl -w fs.file-max=65536

4.4 echo "fs.file-max=65536" /etc/sysctl.conf

5,文件句柄使用情况配置文件:/proc/sys/fs/file-nr

这三个值分别指:系统已经分配出去的句柄数、已经分配但是还没有使用的句柄数以及系统最大的句柄数(和file-max一样)。

6,查看进程打开的文件句柄数

lsof:列出当前系统打开文件的工具。

操作系统的文件句柄数

百度百科:

在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作 系统函数 并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,再通过调用系统函数来关闭该文件。

linux下文件句柄是有限制的,默认并不会太高,一般都是1024。linux指令ulimit -n可以查看文件句柄限制。

ulimit -a   用来显示当前的各种用户进程限制

ulimit -n 查看当前用户默认的最大文件句柄数

lsof |wc -l  查看所有进程的文件打开数

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 查看当前进程打开了多少句柄数,注意第一列是句柄数,第二列是进程id

硬限制是实际的限制,而软限制,是warnning限制,只会做出warning,可以通过ulimit来设定这两个参数,用root用户执行ulimit -HSn 4096(H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量)


本文题目:linux系统句柄数命令 linux服务器句柄数怎么看
转载来于:http://myzitong.com/article/docjscp.html