日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux修改文件句柄数生效_linux设置打开文件句柄数

發(fā)布時間:2023/12/20 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux修改文件句柄数生效_linux设置打开文件句柄数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

介紹

在Linux下有時會遇到Socket/File : Can't open so many files的問題。其實(shí)Linux是有文件句柄限制的,而且Linux默認(rèn)一般都是1024(阿里云主機(jī)默認(rèn)是65535)。在生產(chǎn)環(huán)境中很容易到達(dá)這個值,因此這里就會成為系統(tǒng)的瓶頸。

今天早上tomcat應(yīng)用就報了上述錯誤:

1.查看方法

使用ulimit -a 或者 ulimit -n

open files (-n) 1024 是linux操作系統(tǒng)對一個進(jìn)程打開的文件句柄數(shù)量的限制(也包含打開的套接字?jǐn)?shù)量)

這里只是對用戶級別的限制,其實(shí)還有個是對系統(tǒng)的總限制,查看系統(tǒng)總線制:

# cat /proc/sys/fs/file-max

man proc,可得到file-max的描述:

/proc/sys/fs/file-max

This? file defines a system-wide limit on the number of open files for all processes.? (See

also setrlimit(2),? which? can? be? used? by? a? process? to? set? the? per-process? limit,

RLIMIT_NOFILE,? on? the? number? of? files it may open.)? If you get lots of error messages

about running out of file handles, try increasing this value:

即file-max是設(shè)置系統(tǒng)所有進(jìn)程一共可以打開的文件數(shù)量。同時一些程序可以通過setrlimit調(diào)用,設(shè)置每個進(jìn)程的限制。如果得到大量使用完文件句柄的錯誤信息,是應(yīng)該增加這個值。

也就是說,這項(xiàng)參數(shù)是系統(tǒng)級別的。

2.修改方法

臨時生效:

# ulimit -SHn 10000

其實(shí)ulimit 命令身是分軟限制和硬限制,加-H就是硬限制,加-S就是軟限制。默認(rèn)顯示的是軟限制,如果運(yùn)行ulimit 命令修改時沒有加上-H或-S,就是兩個參數(shù)一起改變。

軟限制和硬限制的區(qū)別?

硬限制就是實(shí)際的限制,而軟限制是警告限制,它只會給出警告。

永久生效

要想ulimits 的數(shù)值永久生效,必須修改配置文件/etc/security/limits.conf

在該配置文件中添加

* soft nofile 65535

* hard nofile 65535

* 表示所用的用戶,或者執(zhí)行以下命令:

echo "* soft nofile 65535" >> /etc/security/limits.conf

echo "* hard nofile 65535" >> /etc/security/limits.conf

修改系統(tǒng)總限制

其實(shí)上的修改都是對一個進(jìn)程打開的文件句柄數(shù)量的限制,我們還需要設(shè)置系統(tǒng)的總限制才可以。

假如,我們設(shè)置進(jìn)程打開的文件句柄數(shù)是1024 ,但是系統(tǒng)總線制才500,所以所有進(jìn)程最多能打開文件句柄數(shù)量500。從這里我們可以看出只設(shè)置進(jìn)程的打開文件句柄的數(shù)量是不行的。所以需要修改系統(tǒng)的總限制才可以。

echo? 6553560 > /proc/sys/fs/file-max

上面是臨時生效方法,重啟機(jī)器后會失效;

永久生效方法:

修改 /etc/sysctl.conf, 加入

fs.file-max = 6553560 重啟生效

查看應(yīng)用進(jìn)程打開的文件句柄數(shù)量方法:

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

統(tǒng)計單個進(jìn)程打開的文件句柄數(shù)

[root@pcidata-svr1 ~]# lsof -p 1779|wc -l

通過PID再查看相應(yīng)的進(jìn)程

[root@pcidata-svr1 ~]# ps aux|grep 1779

總結(jié)

以上是生活随笔為你收集整理的linux修改文件句柄数生效_linux设置打开文件句柄数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。