Linux上几个可以影响到服务器并发处理性能的系统参数
1. 打开文件数量限制系统总共可以打开的文件数因为服务器的资源是有限的,所以Linux对打开的文件数做了限制;包括系统总共可以打开的文件数,单个用户/组别可以打开的文件数,单个进程可以打开的文件数等对于系统总共可以打开的文件数,应该是系统根据系统硬件资源自动计算出来的,查看几个系统值都很大,一般不需要我们操心了,如果实在要改,请在/etc/sysctl.conf文件下面加上:
1. 打开文件数量限制 
系统总共可以打开的文件数 
  因为服务器的资源是有限的,所以Linux对打开的文件数做了限制;包括系统总共可以打开的文件数,单个用户/组别可以打开的文件数,单个进程可以打开的文件数等 
  对于系统总共可以打开的文件数,应该是系统根据系统硬件资源自动计算出来的,查看几个系统值都很大,一般不需要我们操心了,如果实在要改,请在/etc/sysctl.conf文件下面加上: 
  # Controls the maximum number of open-files by whole system 
  fs.file-max = 6550236 
  然后执行sysctl -p命令 
  cat /proc/sys/fs/file-max 
  6550236 
  此时整个系统所可以打开的文件总数为6550236
单个进程可以打开的文件数 
  当前单个进程可以打开的文件数可以通过ulimit -n [N]进行显示/设置 
  许多系统默认为1024,如果你的应用程序为高并发网络服务就很有可能超过1024个连接(还不包括已经打开的其他文件) 
  所以你可以使用ulimit -n 10240来临时改变最大文件打开数; 
  但是记住,这个命令只是临时性的,不但重启后无效,而且对于另外一个会话也是无效的;所以我们一般有两种方式对这个限制进行处理: 
  1. 将上面命令放到某个启动脚本使其在自己的服务程序前开启 
  2. 修改/etc/security/limits.conf(一般都在这个位置),在尾部增加下面内容 
  * soft nofile 10240 
  * hard nofile 10240 
  记住这个是需要重启系统的
2. socket等待队列数量限制 
  somaxconn参数控制的是socket监听队列中的socket数量,在Centos6.5是128,对于要运行大并发服务程序的服务器而言往往是不够的,将他修改成2048或者更多 
  sysctl配置与显示在/proc/sys目录中的内核参数.用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。 
  命令格式: 
  sysctl [-n] [-e] -w variable=value 
  sysctl [-n] [-e] -p (default /etc/sysctl.conf) 
  sysctl [-n] [-e] -a 
  常用参数的意义: 
  -w 临时改变某个指定参数的值,系统重启将失效,如 
  sysctl -w net.core.somaxconn=2048 
  PS: echo 2048 > /proc/sys/net/core/somaxconn跟上面的命令完成了同样的功能 
  -a 显示所有的系统参数 
  -p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载 
  比如在/etc/sysctl.conf中加入: net.core.somaxconn=2048,再执行sysctl -p
更多推荐
 
 



所有评论(0)