欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux下查看進(jìn)程打開的文件句柄數(shù)和如何修改方法

 更新時(shí)間:2016年11月19日 09:57:02   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇Linux下查看進(jìn)程打開的文件句柄數(shù)和如何修改方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

修改文件句柄數(shù)在Linux下,我們使用ulimit -n 命令可以看到單個(gè)進(jìn)程能夠打開的最大文件句柄數(shù)量(socket連接也算在里面)。系統(tǒng)默認(rèn)值1024。

對(duì)于一般的應(yīng)用來(lái)說(shuō)(象Apache、系統(tǒng)進(jìn)程)1024完全足夠使用。但是如何象squid、mysql、java等單進(jìn)程處理大量請(qǐng)求的應(yīng)用來(lái)說(shuō)就有 點(diǎn)捉襟見肘了。如果單個(gè)進(jìn)程打開的文件句柄數(shù)量超過(guò)了系統(tǒng)定義的值,就會(huì)提到“too many files open”的錯(cuò)誤提示。如何知道當(dāng)前進(jìn)程打開了多少個(gè)文件句柄呢?下面一段小腳本可以幫你查看:

1.lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more  

在系統(tǒng)訪問(wèn)高峰時(shí)間以root用戶執(zhí)行上面的腳本,可能出現(xiàn)的結(jié)果如下:

1.# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more  
2.    131 24204 
3.     57 24244 
4.     57 24231 
5.     56 24264 

其中第一行是打開的文件句柄數(shù)量,第二行是進(jìn)程號(hào)。得到進(jìn)程號(hào)后,我們可以通過(guò)ps命令得到進(jìn)程的詳細(xì)內(nèi)容。

1.ps -aef|grep 24204 
2.mysql    24204 24162 99 16:15 ?        00:24:25 /usr/sbin/mysqld 

哦,原來(lái)是mysql進(jìn)程打開最多文件句柄數(shù)量。但是他目前只打開了131個(gè)文件句柄數(shù)量,遠(yuǎn)遠(yuǎn)底于系統(tǒng)默認(rèn)值1024。

但是如果系統(tǒng)并發(fā)特別大,尤其是squid服務(wù)器,很有可能會(huì)超過(guò)1024。這時(shí)候就必須要調(diào)整系統(tǒng)參數(shù),以適應(yīng)應(yīng)用變化。Linux有硬性限制和軟性限制??梢酝ㄟ^(guò)ulimit來(lái)設(shè)定這兩個(gè)參數(shù)。方法如下,以root用戶運(yùn)行以下命令:

1.ulimit -HSn 4096 

以 上命令中,H指定了硬性大小,S指定了軟性大小,n表示設(shè)定單個(gè)進(jìn)程最大的打開文件句柄數(shù)量。個(gè)人覺(jué)得最好不要超過(guò)4096,畢竟打開的文件句柄數(shù)越多響 應(yīng)時(shí)間肯定會(huì)越慢。設(shè)定句柄數(shù)量后,系統(tǒng)重啟后,又會(huì)恢復(fù)默認(rèn)值。如果想永久保存下來(lái),,可以修改 /etc/profile 把上面命令加到最后。(findsun提出的辦法比較合理)

/////////////////////////////////////////////////////////////////////////////

在 Linux下面部署應(yīng)用的時(shí)候,有時(shí)候會(huì)遇上Socket/File: Can't open so many files的問(wèn)題,其實(shí)Linux是有文件句柄限制的(就像WinXP?),而且默認(rèn)不是很高,一般都是1024,作為一臺(tái)生產(chǎn)服務(wù)器,其實(shí)很容易就達(dá)到 這個(gè)數(shù)量,因此我們需要把這個(gè)值改大一些。

大概知道ulimit這個(gè)命令是相關(guān)的,上Google搜索了一下,大多數(shù)說(shuō)的很含糊,也沒(méi)有統(tǒng)一說(shuō)一下,經(jīng)過(guò)兩個(gè)小時(shí)看了不少文章終于弄清楚ulimit相關(guān)的一些配置問(wèn)題。

我們可以用ulimit -a來(lái)查看所有限制值,我只關(guān)心文件句柄數(shù)量的問(wèn)題

open files (-n) 1024

這個(gè)就是限制數(shù)量

這里,有很多ulimit的文章都說(shuō)的很含糊,究竟這個(gè)1024是系統(tǒng)的限制,還是用戶的限制呢。其實(shí),這個(gè)是用戶限制來(lái)的,完整的說(shuō)法,應(yīng)該是當(dāng)前用戶準(zhǔn)備要運(yùn)行的程序的限制。

1、這個(gè)限制是針對(duì)單個(gè)程序的限制

2、這個(gè)限制不會(huì)改變之前已經(jīng)運(yùn)行了的程序的限制

3、對(duì)這個(gè)值的修改,退出了當(dāng)前的shell就會(huì)消失

比如說(shuō),我先運(yùn)行了一個(gè)程序A,然后通過(guò)ulimit修改了限制為2048,然后運(yùn)行B,然后退出了shell再登錄,然后運(yùn)行C。那就只有B可以打開2048個(gè)句柄。

如果我們需要改變整體的限制值,或者我們運(yùn)行的程序是系統(tǒng)啟動(dòng)的,應(yīng)該怎么處理呢

其中一個(gè)方法,是想ulimit修改命令放入/etc/profile里面,但是這個(gè)做法并不好

正確的做法,應(yīng)該是修改/etc/security/limits.conf

里面有很詳細(xì)的注釋,比如

* soft nofile 2048

* hard nofile 32768

就可以將文件句柄限制統(tǒng)一改成軟2048,硬32768

這里涉及另外一個(gè)問(wèn)題,什么是軟限制,什么是硬限制

硬限制是實(shí)際的限制,而軟限制,是warnning限制,只會(huì)做出warning

其實(shí)ulimit命令本身就有分軟硬設(shè)置,加-H就是硬,加-S就是軟

默認(rèn)顯示的是軟限制,如果修改的時(shí)候沒(méi)有加上的話,就是兩個(gè)一起改

配置文件最前面的一位是domain,設(shè)置為星號(hào)代表全局,另外你也可以針對(duì)不同的用戶做出不同的限制

修改了,重新登錄用ulimit一開就立刻生效了,不過(guò)之前啟動(dòng)過(guò)的程序要重新啟動(dòng)才能使用新的值。我用的是CentOS,似乎有些系統(tǒng)需要重啟才能生效。

ulimit其實(shí)就是對(duì)單一程序的限制

那系統(tǒng)總限制呢

其實(shí)是在這里,/proc/sys/fs/file-max

可以通過(guò)cat查看目前的值,echo來(lái)立刻修改

另外還有一個(gè),/proc/sys/fs/file-nr

只讀,可以看到整個(gè)系統(tǒng)目前使用的文件句柄數(shù)量

查找文件句柄問(wèn)題的時(shí)候,還有一個(gè)很實(shí)用的程序lsof

可以很方便看到某個(gè)進(jìn)程開了那些句柄

也可以看到某個(gè)文件/目錄被什么進(jìn)程占用了。

以上這篇Linux下查看進(jìn)程打開的文件句柄數(shù)和如何修改方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一步步教你如何開啟、關(guān)閉ubuntu防火墻

    一步步教你如何開啟、關(guān)閉ubuntu防火墻

    這篇文章主要給大家介紹了關(guān)于如何開啟、關(guān)閉ubuntu防火墻的相關(guān)資料,文中將ubuntu系統(tǒng)中防火墻的安裝以及使用介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 嵌入式Linux重啟QT應(yīng)用程序的簡(jiǎn)單辦法(基于QT4.8 qws)

    嵌入式Linux重啟QT應(yīng)用程序的簡(jiǎn)單辦法(基于QT4.8 qws)

    今天小編就為大家分享一篇關(guān)于嵌入式Linux重啟QT應(yīng)用程序的簡(jiǎn)單辦法(基于QT4.8 qws),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Linux YUM倉(cāng)庫(kù)及NFS共享服務(wù)方式

    Linux YUM倉(cāng)庫(kù)及NFS共享服務(wù)方式

    YUM(Yellowdog Updater Modified)是基于RPM包的軟件包管理器,專門用于解決軟件包的依賴關(guān)系,支持通過(guò)FTP、HTTP服務(wù)或本地目錄從集中的YUM軟件倉(cāng)庫(kù)獲取軟件包,YUM能夠自動(dòng)處理包依賴問(wèn)題,簡(jiǎn)化了軟件安裝和更新過(guò)程
    2024-09-09
  • CentOS7部署Flask(Apache、mod_wsgi、Python36、venv)

    CentOS7部署Flask(Apache、mod_wsgi、Python36、venv)

    這篇文章主要介紹了CentOS7部署Flask(Apache、mod_wsgi、Python36、venv),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法

    Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法

    當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。下面這篇文章主要給大家介紹了關(guān)于在Linux下Mysql定時(shí)任務(wù)備份數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-11-11
  • LINUX查看進(jìn)程的4種方法(小結(jié))

    LINUX查看進(jìn)程的4種方法(小結(jié))

    這篇文章主要介紹了LINUX查看進(jìn)程的4種方法(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Linux被中斷的系統(tǒng)如何調(diào)用詳解

    Linux被中斷的系統(tǒng)如何調(diào)用詳解

    這篇文章主要給大家介紹了關(guān)于Linux被中斷的系統(tǒng)如何調(diào)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Linux多線程中fork與互斥鎖過(guò)程示例

    Linux多線程中fork與互斥鎖過(guò)程示例

    大家好,本篇文章主要講的是Linux多線程中fork與互斥鎖過(guò)程示例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下哦
    2021-11-11
  • ubuntu 16.04 64位兼容32位程序三步曲

    ubuntu 16.04 64位兼容32位程序三步曲

    這篇文章主要介紹了ubuntu 16.04 64位兼容32位程序的三步,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-06-06
  • 詳解Linux下crontab的使用與注意事項(xiàng)

    詳解Linux下crontab的使用與注意事項(xiàng)

    這篇文章主要介紹了詳解Linux下crontab的使用與注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評(píng)論