首页 > 其他 > 详细

Linux服务器核心参数配置

时间:2014-02-19 15:18:47      阅读:364      评论:0      收藏:0      [点我收藏+]

  使用Linux作为长连接的web服务器时,为了增加服务的容量,以及处理性能,需要修改一些参数。

一、多进程绑定CPU  

  使用taskset命令可以绑定进程到指定CPU,以减少多核CPU环境中,单进程在多个CPU之间却换运行而产生的CPU上下文却换。

  taskset参数:

  -p 指定已存在进程的pid,而不是启动一个进程;同时该命令还返回该进程当前的CPU-list掩码,如:

bubuko.com,布布扣
0x00000001
is processor #0

0x00000003
is processors #0 and #1

0xFFFFFFFF
is all processors (#0 through #31)
bubuko.com,布布扣

  -c 指定进程的CPU列表,该列表可以使用逗号分隔,或者区间横线符号,如:0,5,7,9-11.

  taskset -cp 1,2,3 9876  #指定9876进程在1,2,3CPU上运行

  taskset -c 1,2,3 node test.js  #在CPU1,2,3上启动一个进程

  参考:http://yunwei.org/123/ ; http://hi.baidu.com/zhongalin_hust/item/d8a556385c5a2983f5e4ad18

二、使用nice和renice来修改进程的优先级

  nice,renice分别用于启动时与启动后修改进程的nice值,nice值为正表示优先级降低,为负值表示优先级提高,进程所有者允许降低优先级,但是只有root才可以提高优先级。

  nice参数

  -n val node test.js #启动的时候设置nice值

  renice val pid

三、调整文件描述符限制

  linux中文件描述符有两种:

  一是系统级别的限制(表示所有进程总数量限制):

bubuko.com,布布扣
    修改 /etc/sysctl.conf文件,增加如下两行
    fs.file-max = 1000000 --系统最大文件描述符数(所有进程合起来的最大限制)
   fs.nr_open = 1000000 --系统最大打开文件数
   使用 /etc/sysctl.conf 后可以使用 sysctl -p 生效 也可以修改如下两个文件,效果一样(/etc/sysctl.conf中得配置,是直接对应到 /proc/sys 目录下面):
/proc/sys/fs/file-max /proc/sys/fs/nr_open
bubuko.com,布布扣

  二是用户级别的限制(表示系统中的单个用户可打开的文件数):

    修改配置文件:
    /etc/security/limits.conf

  * soft nofile 1000000 
  * hard nofile 1000000

  修改后可以采用重登陆,或者重启的方式生效。

  另外可以使用ulimia -a的方式来查看 open files 项是否为修改后的值。

  因此在服务端,需要同时修改系统与用户级别的限制,而在测试客户机器中,由于打开的文件数非常有限,因此默认的系统限制已经足够,只需要修改用户级别(默认1024)的限制即可。

四、网络资源修改

bubuko.com,布布扣
修改配置文件 /etc/sysctl.conf ,修改后使用 sysctl -p
  net.core.somaxconn = 2048 ---监听队列最大值
  net.core.rmem_default = 262144
  net.core.wmem_default = 262144
  net.core.rmem_max = 16777216
  net.core.wmem_max = 16777216
  net.core.netdev_max_backlog = 100000 ---网络设备接收到的数据,比处理快时,允许保存的最大包数量

  net.ipv4.tcp_rmem = 40960 40960 16777216 ---TCP读缓存大小 最小、默认、最大
  net.ipv4.tcp_wmem = 40960 40960 16777216
  net.ipv4.tcp_mem = 786432 2097152 3145728 ---系统TCP内存使用限制,以页为单位
  net.ipv4.tcp_max_syn_backlog = 32786 --未建立连接队列,可以增加等待连接建立的TCP数量
  net.ipv4.tcp_fin_timeout = 15 ---主动断开连接,发送FIN后等待对方ACK的时间,默认60秒
  net.ipv4.tcp_tw_reuse = 1    --是否可以使用TIME_WAIT,TCP连接用于建立新连接
  net.ipv4.tcp_tw_recycle = 1    --是否开启带回收TIME——WAIT TCP的功能 ?
  net.ipv4.tcp_max_orphans = 131072 --系统允许没有归属的socket数量
  net.ipv4.ip_local_port_range = 1024 65535
bubuko.com,布布扣

  由于服务端需要保持大量的socket链接,因此适当地减低每个socket的缓冲区大小,有利于减少对内存的占用。

  而对于客户端,只需要修改 ip_local_port_range 即可。默认情况下,端口范围为从 32768 - 61000 只有一万多个端口可以使用。

五、判断已启动进程的系统资源限制

  修改了系统限制之后,之后启动的进程将采用新的限制,而已经启动的进程将保持原有的限制。

  当不确定进程的限制时,可以通过查看 /proc/pid/limits 文件来了解主要的资源限制。

Linux服务器核心参数配置

原文:http://www.cnblogs.com/chang290/p/3554766.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!