在centos 6.5, mysql版本為5.1的機器上,檢視mysql程序的檔案描述符使用量
使用命令
// grep 後面跟的是mysql程序號
可以看到每個資料庫檔案開啟的檔案數量只占用了乙個檔案描述符,即使當前mysql啟動了多個子程序
但在centos7.2, mysql版本為5.6的機器上,重複上面命令,得到的 結果為
可以看到開啟的檔案描述符的數為mysql以及他的子程序數量
一開始以為是mysql版本問題,每個子程序自己又去開啟相應的資料庫檔案,於是就在centos 7.2上裝了個mysql 5.1版本,重複上面命令,得到的結果為
結果還是一樣,搜尋了下資料,找到了原因。
因為lsof版本的原因,在lsof為4.8版本的時候,dup的檔案描述符都算為新的檔案描述符
為了驗證這個原因的正確性,從centos 6.5系統拷貝了lsof到centos 7.2中,執行結果
從圖中可以看到,正是lsof版本的原因導致在centos 7上檢視mysql檔案描述符會比centos 6多很多
mysql 檔案描述符 檔案描述符
toc 首先,linux的世界裡一切皆為檔案,無論是裝置還是乙個socket連線。檔案又可分為 普通檔案 目錄檔案 鏈結檔案和裝置檔案。檔案描述符 file descriptor 是核心為了高效管理已被開啟的檔案所建立的索引,其是乙個非負整數 通常是小整數 用於指代被開啟的檔案,所有執行i o操作的...
使用檔案描述符
開啟和關閉檔案描述符。include include include include int open const char pathname,int flags int close int fd open試圖開啟引數pathname中的乙個檔案。引數flags指定訪問該檔案的方式。open成功後會...
檔案描述符
檔案描述符 是個很小的正整數,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。檔案描述符的優點 相容posix標準,許多 linux 和unix 系統呼叫都依賴於它。檔案描述符的缺點 不能移植到unix以外的系統上去,也不直觀。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案...