系统调优
禁用Swap
Swap 是虚拟内存的一个功能,在已经PC配置不高的年代很好用,在现在虚拟内存会导致IO以及CPU变的缓慢和浪费;好在大多数服务系统都是默认禁用的
# 临时关闭立即生效;重启失效sudo swapoff -a# 永久关闭;重启生效## 授权sudo mount -n -o remount,rw /# 修改 /etc/fstab;在swap分区这行前加 # 禁用掉vi /etc/fstab# -------# 开启sudo swapon -a
设置更多的文件句柄
主流的 Linux 服务器默认所支持最大 fd 数量为 1024,当并发连接数很大时很容易因为 fd 不足而出现“open too many files”错误,导致新的连接无法建立。 PS:建议将 linux 服务器所支持的最大句柄数调高数倍(与服务器的内存数量相关)
查看
# 当前用户限制的数量ulimit -aulimit -n# 单个进程级别限制的数量cat /proc/sys/fs/nr_open# 系统级别 (所有进程打开的不能超过)cat /proc/sys/fs/file-max# 查看某个进程锁存在的FDlsof -n | grep [PID] -c# 查看每个用户已用FDps h -Led -o user | sort | uniq -c | sort -n
修改
# 当前用户(会话)ulimit -n 65535# 修改limits.conf文件 永久生效# ------# 限制用户进程的数量对于linux系统的稳定性非常重要# soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错#* soft core 0#* hard rss 10000#@student hard nproc 20#@faculty soft nproc 20#@faculty hard nproc 50#ftp hard nproc 0#@student - maxlogins 4vim /etc/security/limits.conf# 添加内容# *任何用户可以打开的最大的文件描述符数量,默认1024,这里的数值会限制tcp连接* soft nofile 655350* hard nofile 655350# *任何用户可以打开的最大进程数* soft nproc 655350* hard nproc 650000# @student 用户分组@student hard nofile 65535@student soft nofile 4096#学生组中的任何人不能拥有超过50个进程,并且会在拥有30个进程时发出警告@student hard nproc 50@student soft nproc 30# ------# ------# 修改全局系统的FDvim /etc/sysctl.conffs.file-max = 6553600# 立即刷新sysctl -p# ------## 修改单个进程的FDvim /etc/sysctl.conffs.nr_open=10240000# 立即刷新sysctl -p# ------
网络调优(必须的)
TCP 调优
设置较短的超时时间
# 修改 /etc/sysctl.confvi /etc/sysctl.conf# 新增或修改net.ipv4.tcp_fin_timeout = 30# 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;net.ipv4.tcp_syncookies = 1# 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;net.ipv4.tcp_tw_reuse = 1# 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。net.ipv4.tcp_tw_recycle = 1# 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。net.ipv4.tcp_fin_timeout = 30# 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。net.ipv4.tcp_keepalive_time = 1200# 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。net.ipv4.ip_local_port_range = 1024 65000# 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。net.ipv4.tcp_max_syn_backlog = 8192# 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。net.ipv4.tcp_max_tw_buckets = 5000
锁定重要文件
chattr -i /etc/passwd /etc/shoadow /etc/group /etc/gshadow /etc/inittab
