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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux系统资源限制

發布時間:2025/5/22 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统资源限制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux系統資源限制

1. 最大文件數

查看進程允許打開的最大文件句柄數:ulimit -n

查看進程所占的文件描述符: lsof -p xxx | wc -l

設置進程能打開的最大文件句柄數:ulimit -n xxx

2. ulimit -n vs. file-max ?

簡單的說, ulimit -n控制進程級別能夠打開的文件句柄的數量, 而max-file表示系統級別的能夠打開的文件句柄的數量。

ulimit -n的設置在重啟機器后會丟失,因此需要修改limits.conf的限制,limits.conf中有兩個值softhardsoft代表只警告,hard代表真正的限制

Cat /etc/security/limits.conf代碼?

*?????????????? soft??? nofile????????? 150000?

*?????????????? hard??? nofile????????? 150000?

這里我們把softhard設置成一樣的。

cat /proc/sys/fs/file-max”,或“sysctl -a | grep fs.file-max”查看系統能打開的最大文件數。查看和設置例如:

Shell代碼?

[root@vm014601 ~]# sysctl -a |grep fs.file-max?

fs.file-max = 200592?

[root@vm014601 ~]# echo "fs.file-max = 2005920" >> /etc/sysctl.conf??

[root@vm014601 ~]# sysctl -p?

[root@vm014601 ~]# cat /proc/sys/fs/file-max?????????????????????????

2005920?

file-nr是只讀文件,第一個數代表了目前分配的文件句柄數;第二個數代表了系統分配的最大文件句柄數;比如線上系統查看結果:

Shell代碼?

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

1106537?

# cat /proc/sys/fs/file-nr??????

1088? 0?????? 1106537?

# lsof | wc -l?

1506?

可以看到file-nrlsof的值不是很一致,但是數量級一致。為什么會不一致?原因如下:

寫道

lsof是列出系統所占用的資源,但是這些資源不一定會占用打開文件號的.

比如共享內存,信號量,消息隊列,內存映射等,雖然占用了這些資源,但不占用打開文件號。

我曾經在前端機上很長時間都無法得到lsof | wc -l 的結果,這個時候可以通過file-nr粗略的估算一下打開的文件句柄數。

3. sysckernel.threads-max

指定了內核所能使用的線程(所有進程打開線程之和)的最大數目,通過命令 “cat /proc/sys/kernel/threads-max” 查看當前值。查看和設置例如:

Shell代碼?

sysctl -a | grep threads?

vm.nr_pdflush_threads = 2?

kernel.threads-max = 229376?

本廠系統配置允許打開的線程數 > 229k

如果此值設小了會導致:-bash: fork: Resource temporarily unavailable

4. 為什么有限制?

為什么Linux內核對文件句柄數、線程和進程的最大打開數進行了限制?以及如果我們把它調的太大,會產生什么樣的后果?

原因1 - 資源問題:the operating system needs memory to manage each open fileand memory is a limited resource - especially on embedded systems.

原因2 - 安全問題:if there were no limitsa userland software would be able to create files endlessly until the server goes down.

最主要的是資源問題,為防止某一單一進程打開過多文件描述符而耗盡系統資源,對進程打開文件數做了限制。

5. 設置成多少比較合適?

網上有朋友給了估算公式:file-max number = RAM size/10k

I am not a kernel expert, but as far as I can seethe default for file-max seems to be RAM size divided by 10k. As the real memory used per file handler should be much smaller (size of struct file plus some driver dependent memory)this seems a quite conservative limit. jofel Apr 19 at 16:43

那么一個12G RAM 的前端機可以打開接近1M的文件。真的可以打開1百萬個文件嗎?

為了試驗,基于MINA寫了一個NIO服務,在一個服務上創建了50萬活躍率約為1%TCP連接。觀察內存使用 < 4.5G可以粗略認為單個socket連接使用內存小于10K。因此可以用上面的公式來簡單估算。

原文

http://maoyidao.iteye.com/blog/1744309

轉載于:https://www.cnblogs.com/mydomain/archive/2013/05/14/3077036.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Linux系统资源限制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。