调整Nginx性能----Linux系统的优化

2024-10-13 23:37:19

在不重新编译内核的情况下,搜集并测试了调整Linux参数后,得到的nginx相应的一些结果1)At足毂忍珩ime:这是系统用来定义在上次读取文件时,是否需要记录时间的信息。如果将记录取消,我们可以在/etc/fstab中修改LABEL=/home /home ext2 noatime 1 2然后运行 “mount -a”才能使更改生效在不记录时间的时候,nginx响应的TPS有一些提高2)ulimit 命令可以显示linux系统中资源的软件限制-c size: 设置core文件的最大file大小 单位blocks-d size: 设置segment的最大大小 单位kbytes-f size: 被创建文件的最大大小 单位blocks-l size: 被每个进程锁起来的最大内存大小 单位kbytes-m size: 每个进程的最大内存使用率 单位kbytes-n size: 最大打开文件数 单位N-p size: 管道缓冲区的最大值 单位kbytes-s size: stack的最大值 单位kbytes-t size: cpu使用率的最大值 单位Seconds-v size: 最大虚拟内存使用 单位kbytes其中打开文件数,会影响到nginx的性能,可以适当调高下面是ulimit -n 1024和-n 204800的对比ulimit -s不应该设置过大,如果过大的话会导致TPS的下降***NOTE ulimit -*只是能够更改运行终端的软限制,如果想要长期更改,可以通过更改脚本:可以在/etc/security/limit.conf中设置其中,hard 表示系统中所能设置的最大值soft表示当前系统生效的设置值可以针对某个用户进行限制:nginx hard nofile 102400针对某个组进行限制: @nginx soft nofile 102400针对所有用户进行限制: * soft nofile 102400resource:core - 限制内核文件的大小date - 最大数据大小fsize - 最大文件大小memlock - 最大锁定内存地址空间nofile - 打开文件的最大数目rss - 最大持久设置大小stack - 最大栈大小cpu - 以分钟为单位的最多 CPU 时间noproc - 进程的最大数目as - 地址空间限制maxlogins - 此用户允许登录的最大数目要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:session required /lib/security/pam_limits.so3)TCP/IP参数调整这些参数的调整可以在/etc/sysctl.conf中配置net.core.netdev_max_backlog 能够发给对列的最大数据包,这个选项会在core进程的速度小于网速的时候起作用。建议值是3000net.ipv4.tcp_max_tw_recycle 用来开启timewait快速循环,建议值是0net.ipv4.tcp_tw_reuse 启动time-wait socket的再利用,默认的值是0net.ipv4.tcp_syncookies 启动SYN cookie, 当SYN对列是空的时候,使用cookienet.ipv4.tcp_fin_timeout 等待fin包的超时时间,这将对处理大量并发连接很有用处net.ipv4.tcp_keepalive_time keepalive被设置后,默认值是1800net.ipv4.tcp_max_syn_backlog 增加TCP SYN对列net.core.rmem_defaultnet.core.wmem_default system的socket缓冲区设置net.ipv4.tcp_rmemnet.ipv4.tcp_wmem TCP send/rec缓冲区设置经过测试,有些结果可以参考:1)对于net.core.netdev_max_backlog,最好不要设置太大,建议值在3000 ~ 50005000和8000的对比:2)Reuse最好设置为13)如果硬件环境不是问题的话,请将tcp_max_syn_backlog设置成比较小的值

猜你喜欢