當前位置:首頁 » 操作系統 » linux句柄

linux句柄

發布時間: 2022-02-06 09:37:24

❶ 文件句柄數是什麼東東怎樣才能把linux的文件句柄數給消耗完(不修改文件)或者說有什麼工具模擬消耗

文件句柄那是windows的東西吧, linux下一般叫做文件描述符(File Descriptor), 使用ulimit -n可查看這個最大打開文件數限制. 只要你多次調用fopen,並且不調用fclose,很快就可以把它消耗完.不過這是對單個程序的限制.

❷ 在linux下獲得當前窗口句柄

很好啊。如果實現了。真的。加油!

❸ linux 怎麼查句柄泄露問題

首先確定此java程序的PID,pidof java 然後去到/proc/`pidof java`/fd目錄,wc -l看看打開的文件句柄數。

❹ linux 文件句柄數高怎麼解決

打開文件做文件操作後請及時釋放文件句柄。
檢查一下有哪些文件操作,哪些操作完成後沒有釋放文件句柄。

❺ linux查看打開的文件句柄

linux系統下查看進程打開文件 在/proc下,對應每個進程有一個以進程號命名的目錄,該目錄下有一個fd目錄,該目錄下面的每個文件是一個符號連接,其文件名對應該進程佔用的一個文件描述符,而連接指向的內容表示文件描述符對應的實際文件,有多少...

❻ linux 怎樣查看進程打開的所有句柄

名稱:ps
使用許可權:所有使用者
使用方式:ps [options] [--help]
說明:顯示瞬間行程 (process) 的動態
參數:ps的參數非常多, 在此僅列出幾個常用的參數並大略介紹含義
-A 列出所有的進程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程

❼ linux如何獲取某個進程打開的句柄數,c代碼實現

可以通過指令查詢當前進程打開了多少句柄,Linux下有exec函數族可以執行指令,把指令寫進去就行了。
-查看當前進程打開了多少句柄數
# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
-根據ID號來查看進程名。
# ps aef|grep ID號

❽ 怎麼查看linux文件句柄數位置

---查看系統默認的最大文件句柄數,系統默認是1024
# ulimit -n
1024

----查看當前進程打開了多少句柄數
# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
131 24204
57 24244
57 24231 ........
其中第一列是打開的句柄數,第二列是進程ID。
可以根據ID號來查看進程名。
# ps aef|grep 24204
nginx24204 24162 99 16:15 ?00:24:25 /usr/local/nginx/sbin/nginx -s

Linux有硬性限制和軟性限制。可以通過ulimit來設定這兩個參數。方法如下,以root用戶運行以下命令:
# ulimit -HSn 4096
以上命令中,H指定了硬性大小,S指定了軟性大小,n表示設定單個進程最大的打開文件句柄數量。個人覺得最好不要超過4096,畢竟打開的文件句柄數越多響應時間肯定會越慢。設定句柄數量後,系統重啟後,又會恢復默認值。如果想永久保存下來,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最後.

❾ linux怎麼查看默認的句柄數

您好!很高興能為您解答。
修改文件句柄數在Linux下,我們使用ulimit -n
命令可以看到單個進程能夠打開的最大文件句柄數量(socket連接也算在裡面)。系統默認值1024。

對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有
點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到「too many files
open」的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:

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

在系統訪問高峰時間以root用戶執行上面的腳本,可能出現的結果如下:

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

5. 56 24264

其中第一行是打開的文件句柄數量,第二行是進程號。得到進程號後,我們可以通過ps命令得到進程的詳細內容。

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

哦,原來是mysql進程打開最多文件句柄數量。但是他目前只打開了131個文件句柄數量,遠遠底於系統默認值1024。

但是如果系統並發特別大,尤其是squid伺服器,很有可能會超過1024。這時候就必須要調整系統參數,以適應應用變化。Linux有硬性限制和軟性限制。可以通過ulimit來設定這兩個參數。方法如下,以root用戶運行以下命令:

1.ulimit -HSn 4096

以 上命令中,H指定了硬性大小,S指定了軟性大小,n表示設定單個進程最大的打開文件句柄數量。個人覺得最好不要超過4096,畢竟打開的文件句柄數越多響
應時間肯定會越慢。設定句柄數量後,系統重啟後,又會恢復默認值。如果想永久保存下來,,可以修改 /etc/profile
把上面命令加到最後。(findsun提出的辦法比較合理)

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

在 Linux下面部署應用的時候,有時候會遇上Socket/File: Can't open so many
files的問題,其實Linux是有文件句柄限制的(就像WinXP?),而且默認不是很高,一般都是1024,作為一台生產伺服器,其實很容易就達到
這個數量,因此我們需要把這個值改大一些。

大概知道ulimit這個命令是相關的,上Google搜索了一下,大多數說的很含糊,也沒有統一說一下,經過兩個小時看了不少文章終於弄清楚ulimit相關的一些配置問題。

我們可以用ulimit -a來查看所有限制值,我只關心文件句柄數量的問題

open files (-n) 1024

這個就是限制數量

這里,有很多ulimit的文章都說的很含糊,究竟這個1024是系統的限制,還是用戶的限制呢。其實,這個是用戶限制來的,完整的說法,應該是當前用戶准備要運行的程序的限制。

1、這個限制是針對單個程序的限制

2、這個限制不會改變之前已經運行了的程序的限制

3、對這個值的修改,退出了當前的shell就會消失

比如說,我先運行了一個程序A,然後通過ulimit修改了限制為2048,然後運行B,然後退出了shell再登錄,然後運行C。那就只有B可以打開2048個句柄。

如果我們需要改變整體的限制值,或者我們運行的程序是系統啟動的,應該怎麼處理呢

其中一個方法,是想ulimit修改命令放入/etc/profile裡面,但是這個做法並不好

正確的做法,應該是修改/etc/security/limits.conf

裡面有很詳細的注釋,比如

* soft nofile 2048

* hard nofile 32768

就可以將文件句柄限制統一改成軟2048,硬32768

這里涉及另外一個問題,什麼是軟限制,什麼是硬限制

硬限制是實際的限制,而軟限制,是warnning限制,只會做出warning

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

默認顯示的是軟限制,如果修改的時候沒有加上的話,就是兩個一起改

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

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

ulimit其實就是對單一程序的限制

那系統總限制呢

其實是在這里,/proc/sys/fs/file-max

可以通過cat查看目前的值,echo來立刻修改

另外還有一個,/proc/sys/fs/file-nr

只讀,可以看到整個系統目前使用的文件句柄數量

查找文件句柄問題的時候,還有一個很實用的程序lsof

可以很方便看到某個進程開了那些句柄

也可以看到某個文件/目錄被什麼進程佔用了。

❿ linux 文件句柄 是哪個線程打開

我想可能是這兩個原因造成的: 1:你在線程中打開句柄後又關閉,那麼在後面線程創建句柄時因為之前這個使用的句柄已經釋放,則後面線程可以繼續使用。 2:沒有加線程鎖的原因,前一個線程打開文件創建句柄時後一個線程也已經啟動並同時創建句柄...

熱點內容
單片機android 發布:2024-09-20 09:07:24 瀏覽:760
如何提高三星a7安卓版本 發布:2024-09-20 08:42:35 瀏覽:660
如何更換伺服器網站 發布:2024-09-20 08:42:34 瀏覽:307
子彈演算法 發布:2024-09-20 08:41:55 瀏覽:284
手機版網易我的世界伺服器推薦 發布:2024-09-20 08:41:52 瀏覽:813
安卓x7怎麼邊打游戲邊看視頻 發布:2024-09-20 08:41:52 瀏覽:158
sql資料庫安全 發布:2024-09-20 08:31:32 瀏覽:90
蘋果連接id伺服器出錯是怎麼回事 發布:2024-09-20 08:01:07 瀏覽:503
編程鍵是什麼 發布:2024-09-20 07:52:47 瀏覽:655
學考密碼重置要求的證件是什麼 發布:2024-09-20 07:19:46 瀏覽:479