linux系统性能优化

Linux系统打开文件数修改

u  第一步 修改/etc/security/limits.conf文件

在文件中添加如下行:
* soft nofile 65536

* hard nofile 65536

* soft noproc 16384

* hard noproc 16384

*'号表示修改所有用户的限制;softhard指定要修改软限制还是硬限制;65536则指定了想要修改的新的限制值,即最大打开文件数(请注意软限制值要小于或等于硬限制)。修改完后保存文件。

u  第二步 修改/etc/pam.d/login文件

在文件中添加如下行:
session required /lib/security/pam_limits.so
这是告诉Linux在用户完成系统登录后,应该调用pam_limits.so模块来设置系统对该用户可使用的各种资源数量的最大限制(包括用户可打开的最大文件数限制),而pam_limits.so模块就会从/etc/security/limits.conf文件中读取配置来设置这些限制值。修改完后保存此文件。

网络内核对TCP连接的有关限制

u  系统文件/etc/sysctl.conf文件保留如下设置,其他进行注释

# Kernel sysctl configuration file for Red Hat Linux

#

# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and

# sysctl.conf(5) for more details.

# Controls IP packet forwarding

net.ipv4.ip_forward = 0

# Controls source route verification

net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing

net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel

kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename

# Useful for debugging multi-threaded applications

kernel.core_uses_pid = 1

 


net.ipv4.tcp_syncookies = 1
#
表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

  
  
  
  
  1. tcp        0      0 172.31.1.101:7002           101.228.32.220:4630         SYN_RECV   

当出现上面很多这样的状态时候,可以考虑启用以上参数


net.ipv4.tcp_tw_reuse = 1
#
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1
#
表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

 

  
  
  
  
  1. tcp        0      0 172.31.1.101:15843          172.31.1.103:7002           TIME_WAIT 

当出现上面很多这样的状态时候,可以考虑启用上面两项设置


net.ipv4.tcp_fin_timeout = 30
#
表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间,30秒以后就断开连接

如果服务器有大量的以下状态信息

  
  
  
  
  1. tcp        0      0 172.31.1.101:7002           218.108.5.242:34051         FIN_WAIT2  

就可以考虑启用上面的配置选项了


net.ipv4.tcp_keepalive_time = 1200
#
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000
#
表示用于向外连接的端口范围。缺省情况下很小:3276861000,改为102465000
net.ipv4.tcp_max_tw_buckets = 5000
#
表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,
#TIME_WAIT
套接字将立刻被清除并打印警告信息。默认为180000,改为5000
#
对于ApacheNginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,
#
但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死

你可能感兴趣的:(优化,linux,职场,休闲)