6.10. ulimit 参数

Linux 本身具有每个用户的最大进程数限制。此功能允许我们控制服务器上现有用户可以授权拥有的进程数量。为了提高性能,我们可以安全地将超级用户 root 的进程数限制设置为无限制。编辑.bashrc文件,使用 vi 编辑器/root/.bashrc并添加以下行
          ulimit -u unlimited
          
您必须退出终端并重新登录才能使更改生效。

          [root@deep] /# ulimit -a
           
          core file size (blocks) 	1000000
          data seg size (kbytes)  	unlimited
          file size (blocks)	        unlimited
          max memory size (kbytes)	unlimited
          stack size (kbytes)	        8192
          cpu time (seconds)	        unlimited
          max user processes	        unlimited  (1)
          pipe size (512 bytes)	        8
          open files	                1024
          virtual memory (kbytes)	2105343
          
(1)
请确保当您以 root 用户身份输入命令 ulimit-a在您的终端上时,它显示unlimited在 max user processes 旁边。

Tip: 您也可以在命令提示符下执行 ulimit-uunlimited,在命令提示符下,而不是将其添加到/root/.bashrc文件中。

增加系统对打开文件的限制。例如,在 Red Hat 6.0 上,内核为 2.2.5 的进程可以通过这种方式打开至少 31000 个文件描述符,而内核为 2.2.12 的进程可以通过这种方式打开至少 90000 个文件描述符。上限似乎是可用内存。要将 root 帐户的打开文件数增加到 90000,请执行以下操作:编辑.bashrc 文件vi/root/.bashrc并添加以下行
          ulimit -n 90000
          
您必须退出终端并重新登录才能使更改生效。

          [root@deep] /# ulimit -a
          
          core file size (blocks)	1000000
          data seg size (kbytes)	unlimited
          file size (blocks)	        unlimited
          max memory size (kbytes)	unlimited
          stack size (kbytes)	        8192
          cpu time (seconds)	        unlimited
          max user processes	        unlimited
          pipe size (512 bytes)	        8
          open files	                90000   (1)
          virtual memory (kbytes)	2105343
           

(1)
请确保当您以 root 用户身份在终端上输入命令 ulimit -a 时,它在 open files 旁边显示 90000。

Note: 但是,在较旧的 2.2 内核中,即使进行了上述更改,每个进程打开的文件数仍然限制为 1024。