fd 句柄_linux文件描述符fd(windows下的句柄)

在Linux系統中一切皆可以看成是文件,文件又可分為:普通文件、目錄文件、鏈接文件和設備文件

fd:file descriptor

文件描述符0,1,2分別給了標準輸入、標準輸出和錯誤輸出。

ls -l /proc/pid/fd可以查看某個進程所使用的fd

用lsof可以查看

比如:lsof -i :22 的顯示結果中有一列是FD,這個就是監聽在22號端口的進程打開的文件描述符。比如FD這一列顯示的是3。再使用lsof -d 3就可以查看到,文件描述符3所打開的文件。

1. ? ?系統最大打開文件描述符數:/proc/sys/fs/file-max

設置

a. ? ?臨時性

# echo 1000000 > /proc/sys/fs/file-max

b. ? ?永久性:在/etc/sysctl.conf中設置

fs.file-max = 1000000

2. ? ?進程最大打開文件描述符數:user limit中nofile的soft limit

a. ? ?查看

$ ulimit -n

1700000

2. 設置

a. ? ?臨時性:通過ulimit -Sn設置最大打開文件描述符數的soft limit,注意soft limit不能大于hard limit(ulimit -Hn可查看hard limit),另外ulimit -n默認查看的是soft limit,但是ulimit -n 1800000則是同時設置soft limit和hard limit。對于非root用戶只能設置比原來小的hard limit。

查看hard limit:

$ ulimit -Hn

1700000

設置soft limit,必須小于hard limit:

$ ulimit -Sn 1600000

2. ? ?永久性:上面的方法只是臨時性的,注銷重新登錄就失效了,而且不能增大hard limit,只能在hard limit范圍內修改soft limit。若要使修改永久有效,則需要在/etc/security/limits.conf中進行設置(需要root權限),可添加如下兩行,表示用戶chanon最大打開文件描述符數的soft limit為1800000,hard limit為2000000。以下設置需要注銷之后重新登錄才能生效:

chanon ? ? ? ? ? soft ? ?nofile ? ? ? ? ?1800000

chanon ? ? ? ? ? hard ? nofile ? ? ? ? ?2000000

設置nofile的hard limit還有一點要注意的就是hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注銷后無法正常登錄。可以修改nr_open的值:

# echo 2000000 > /proc/sys/fs/nr_open

3. ? ?查看當前系統使用的打開文件描述符數

[root@localhost bin]# cat /proc/sys/fs/file-nr

5664 ? ? ? ?0 ? ? ? ?186405

其中第一個數表示當前系統已分配使用的打開文件描述符數,第二個數為分配后已釋放的(目前已不再使用),第三個數等于file-max。

4. ? ?總結:

a. ? ?所有進程打開的文件描述符數不能超過/proc/sys/fs/file-max

b. ? ?單個進程打開的文件描述符數不能超過user limit中nofile的soft limit

c. ? ?nofile的soft limit不能超過其hard limit

d. ? ?nofile的hard limit不能超過/proc/sys/fs/nr_open

參考:

http://blog.51cto.com/noican/1733706

https://blog.csdn.net/cywosp/article/details/38965239

https://www.kancloud.cn/kancloud/understanding-linux-processes/52176

https://blog.csdn.net/dlutbrucezhang/article/details/9319577

https://zhuanlan.zhihu.com/p/26609946

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396589.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396589.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396589.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python——三級菜單

#三級菜單函數 menu {北京:{海淀:{五道口:{}中關村:{}上帝:{}}昌平:{}朝陽…

HTTPS 原理解析

http://www.cnblogs.com/zery/p/5164795.html 一 前言 在說HTTPS之前先說說什么是HTTP,HTTP就是我們平時瀏覽網頁時候使用的一種協議。HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全。為了保證這些隱…

python 函數參數注解_python-如何使用函數注釋來驗證函數調用類...

我最近才發現有一種叫做函數注釋的東西,但是我不太確定如何使用它.這是我到目前為止的內容:def check_type(f):def decorated(*args, **kwargs):counter0for arg, type in zip(args, f.__annotations__.items()):if not isinstance(arg, type[1]):msg Not the vali…

SQL Server Replication 中關于視圖的點滴

在服務器A數據庫TEST新建了一個本地發布(Local Publications)RPL_GES_MIS_TEST,在服務器B數據庫RPL_TEST上創建了一個本地訂閱(Local Subscriptions),它訂閱了了這個發布RPL_GES_MIS_TEST.如下截圖所示,本地…

kbmmw 5.0 中的REST 服務

目前關于REST 服務的話題越來越熱,kbmmw 在5.0 里面開始支持rest。今天我就試一下kbmmw 的 rest 服務。閑話少說,開始。 老規矩,放上兩個kbmMWServer1和 kbmMWHTTPSysServerTransport1兩個控件。 設置kbmMWHTTPSysServerTransport1的server 屬…

php7 匿名繼承類_PHP7匿名類的用法示例

本文實例講述了PHP7匿名類的用法。分享給大家供大家參考,具體如下:/*** Created by PhpStorm.* User: Itboot* Date: 2019/1/17* Time: 18:15*/class An{private $num;protected $age 15;public function __construct() {$this->num 1;}protected f…

python中不需要函數重載的原因

函數重載主要是為了解決兩個問題: 1.可變參數類型 2.可變參數個數 并且函數重載一個基本的設計原則是,僅僅當兩個函數除了參數類型和參數個數不同以外,其功能是完全相同的,此時才使用函數重載,如果兩個函數的功能其實不…

多租戶saas 架構_[譯/注] Force.com 多租戶互聯網應用開發平臺的設計

原文地址 http://cloud.pubs.dbs.uni-leipzig.de/sites/cloud.pubs.dbs.uni-leipzig.de/files/p889-weissman-1.pdf譯注:原文發表于 ACM,2009年6月作者Craig D Weissman, CTO, Salesforce.comSteve Bobrowski, Technical Marketing Consultant, Salesfor…

富文本

View Code轉載于:https://www.cnblogs.com/baidaye/p/5295448.html

Jenkins持續集成——用戶管理

一、基于安全矩陣系統管理 —>Configure Global Security相關權限的作用:其中有一些比較特別的權限:最大的權限是Overall的Administer,擁有該權限可以做任何事情。最基本的權限是Overall的Read,用戶必須賦予閱讀的權限&#xf…

pythonui教學視頻_分享軟件開發相關視頻教程(Java、C++、Python、UI設計、HTML5、iOS)...

以下是我收藏的關于開發及其他教程,基本都是花錢在網上買的,網盤沒有加密的,雖然特別愛學習,但并不可能有這么多的精力學習這么多,技術總是很快就被新的淘汰掉,放在網盤中確實太浪費呀,分享出去…

JAVA Set接口和其常用子類HashSet集合

Set接口,它里面的集合,所存儲的元素就是不重復的。 HashSet集合,采用哈希表結構存儲數據,保證元素唯一性的方式依賴于:hashCode()與equals()方法。 保證HashSet集合元素的唯一,其實就是根據對象的hashCode和…

python初始化函數_當你學會了Python爬蟲,網上的圖片素材就免費了

前言本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。加入作者的python學習圈子:1156465813 即可免費獲取,資料全在群文件里。資料可以領取包括不限于Python實戰演練、PDF電子文檔…

第三周作業(一)單元測試

下載vs2015安裝包,打開進行安裝. 選擇顏色 安裝完成,需要登錄 啟動vs 單元測試 1.打開vs界面。 2.新建項目。選擇Visual C# 創建類庫。 3.點擊確定后,進入代碼編輯界面。 4.根據書中代碼,寫入程序,并進行測試。 轉載于…

React-Native-lesson

React-Native-lesson 一、React-Native入門指南 lesson2: 認識代碼結構lesson4: 學會React-Native布局(一)lesson6: UI組件lesson8: 自己動手寫組件 https://github.com/vczero/toilet React Native完全開發的獨立App,支持ES6語法&#xff0c…

1、如何進行字符串常量中的字符定位_Java String:字符串常量池,我相信會有很多朋友不很理解這部分...

作為最基礎的引用數據類型,Java 設計者為 String 提供了字符串常量池以提高其性能,那么字符串常量池的具體原理是什么,我們帶著以下三個問題,去理解字符串常量池:字符串常量池的設計意圖是什么?字符串常量池…

Egret中使用P2物理引擎

游戲中的對象按照物理規律移動,體現重力、引力、反作用力、加速度等物體特性,實現自由落體、搖擺運動、拋物線運動,以及物理碰撞現象的模擬。用于模擬物理碰撞、物理運動的引擎稱為物理引擎。 來自瑞典斯德哥爾摩大學的Stefan Hedman基于Java…

react項目_如何從零開始創建React項目(三種方式)

在開發React項目前最關鍵的當然是項目的創建,現在的前端工程化使得前端項目的創建也變得越來越復雜,在這里介紹三種從零開始創建React項目的方式,分別是在瀏覽器中直接引入、使用官方腳手架create-react-app、使用Webpack創建。瀏覽器中通過標…

利用JSONP解決AJAX跨域問題的原理與jQuery解決方案

寫在前面 跨域的解決方案有多種,其中最常見的是使用同一服務器下的代理來獲取遠端數據,再通過ajax進行讀取,而在這期間經過了兩次請求過程,使得獲取數據的效率大大降低,這篇文章藍飛就為大家介紹一下解決跨域問題的一種…

江西理工大學南昌校區cool code競賽

這次比賽原本就是來打醬油的,想做個簽到題就走!一開始不知道1002是簽到題,一直死磕1001,WA了四發過了,回頭一看Rank,三十名,我靠!看了1001的AC率,在我AC之前只有一個人AC…