-
Notifications
You must be signed in to change notification settings - Fork 425
/
Copy pathulimit.html
131 lines (107 loc) · 7.54 KB
/
ulimit.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>16.2. ulimit</title><link rel="stylesheet" type="text/css" href="docbook.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="lamp,lnmp,famp,fnmp, cgi,fastcgi,wsgi, apache,lighttpd,nginx,tomcat, awstatus, webalizer" /><link rel="home" href="index.html" title="Netkiller Linux Web 手札" /><link rel="up" href="optimization.html" title="第 16 章 Web Server Optimization" /><link rel="prev" href="optimization.html" title="第 16 章 Web Server Optimization" /><link rel="next" href="khttpd.html" title="16.3. khttpd" /></head><body><a xmlns="" href="//www.netkiller.cn/">Home</a> | <a xmlns="" href="//netkiller.github.io/">简体中文</a> | <a xmlns="" href="http://netkiller.sourceforge.net/">繁体中文</a> | <a xmlns="" href="/journal/index.html">杂文</a>
| <a xmlns="" href="https://github.com/netkiller">Github</a> | <a xmlns="" href="https://zhuanlan.zhihu.com/netkiller">知乎专栏</a> | <a xmlns="" href="https://www.facebook.com/bg7nyt">Facebook</a> | <a xmlns="" href="http://cn.linkedin.com/in/netkiller/">Linkedin</a> | <a xmlns="" href="https://www.youtube.com/user/bg7nyt/videos">Youtube</a> | <a xmlns="" href="//www.netkiller.cn/home/donations.html">打赏(Donations)</a> | <a xmlns="" href="//www.netkiller.cn/home/about.html">About</a><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">16.2. ulimit</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="optimization.html">上一页</a> </td><th width="60%" align="center">第 16 章 Web Server Optimization</th><td width="20%" align="right"> <a accesskey="n" href="khttpd.html">下一页</a></td></tr></table><hr /></div><table xmlns=""><tr><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&repo=netkiller.github.io&type=watch&count=true&size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe></td><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&repo=netkiller.github.io&type=fork&count=true&size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe></td><td><iframe src="//ghbtns.com/github-btn.html?user=netkiller&type=follow&count=true&size=large" height="30" width="240" frameborder="0" scrolling="0" style="width:240px; height: 30px;" allowTransparency="true"></iframe></td><td></td><td><a href="https://zhuanlan.zhihu.com/netkiller"><img src="/images/logo/zhihu-card-default.svg" height="25" /></a></td><td valign="middle"><a href="https://zhuanlan.zhihu.com/netkiller">知乎专栏</a></td><td></td><td></td><td></td><td></td></tr></table><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ulimit"></a>16.2. ulimit</h2></div></div></div>
<p>查看 ulimit</p>
<pre class="screen">
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 2048
cpu time (seconds, -t) unlimited
max user processes (-u) 77824
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
</pre>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="id950"></a>16.2.1. open files</h3></div></div></div>
<p>对于linux系统,所有设备都以映射为设备文件的方式存在,包括硬件(键盘,鼠标,打印机,显示器,串口,并口,USB,硬盘,内存,网卡,声卡,显卡,等等....),还有软件(管道,socket),访问这些资源,就相当与打开一个文件,
</p>
<p>所以"open files"文件数限制很重要,默认值根本不能满足我们。</p>
<p>查看文件打开数</p>
<pre class="screen">
$ cat /proc/sys/fs/file-nr
3200 0 197957
已分配文件句柄的数目 已使用文件句柄的数目 文件句柄的最大数目
查看所有进程的文件打开数
lsof |wc -l
查看某个进程打开的文件数
lsof -p pid |wc -l
</pre>
<p>临时更改</p>
<pre class="screen">
ulimit -n 65536
or
# ulimit -SHn 65536
or
# echo "65535" > /proc/sys/fs/file-max
</pre>
<p>永久更改</p>
<p>/etc/security/limits.conf</p>
<pre class="screen">
nobody soft nofile 40960
root soft nofile 40960
nobody hard nofile 40960
root hard nofile 40960
daemon soft nofile 40960
daemon hard nofile 40960
</pre>
<p>更省事的方法</p>
<pre class="screen">
* soft nofile 40960
* hard nofile 40960
</pre>
</div>
<p>最大线程数限制 threads-max</p>
<p>查看当前值</p>
<pre class="screen">
# cat /proc/sys/kernel/threads-max
32624
</pre>
<p>设置</p>
<p>有多种方法加大Linux的threads数,下买是临时更改</p>
<pre class="screen">
sysctl -w kernel.threads-max=65536
echo 65536 > /proc/sys/kernel/threads-max
</pre>
<p>永久修改</p>
<pre class="screen">
编辑/etc/sysctl.conf 增加
kernel.threads-max = 65536
#sysctl -p 马上生效
</pre>
<p>以上数值仅供参考,随着计算机发展,上面的值已经不太适合,当前流行的服务器。</p>
</div><script xmlns="" type="text/javascript" id="clustrmaps" src="//cdn.clustrmaps.com/map_v2.js?u=r5HG&d=9mi5r_kkDC8uxG8HuY3p4-2qgeeVypAK9vMD-2P6BYM"></script><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="optimization.html">上一页</a> </td><td width="20%" align="center"><a accesskey="u" href="optimization.html">上一级</a></td><td width="40%" align="right"> <a accesskey="n" href="khttpd.html">下一页</a></td></tr><tr><td width="40%" align="left" valign="top">第 16 章 Web Server Optimization </td><td width="20%" align="center"><a accesskey="h" href="index.html">起始页</a></td><td width="40%" align="right" valign="top"> 16.3. khttpd</td></tr></table></div><script xmlns="">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-11694057-1', 'auto');
ga('send', 'pageview');
</script><script xmlns="" async="async">
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?93967759a51cda79e49bf4e34d0b0f2c";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script><script xmlns="" async="async">
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
</script></body></html>