Linux参数优化

端口范围

查看可用端口范围

cat /proc/sys/net/ipv4/ip_local_port_range
32768   60999

修改端口可用范围

# 临时修改
echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
# 永久修改:在/etc/sysctl.conf中添加如下信息
net.ipv4.ip_local_port_range = 1024 65535
# 然后生效一下
sysctl -p

TIME_WAIT处理

压测过程中,TCP连接的主动关闭方会出现大量的TIME_WAIT状态,导致端口不够用等问题
可以配置
参考

# 同样,在/etc/sysctl.conf中添加如下信息,最后使用sysctl -p生效一下

# 表示开启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
# 修改系統默认的 TIMEOUT 时间
net.ipv4.tcp_fin_timeout = 30

ulimit配置

显示当前所有的资源限制

ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63445
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 63445
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

可以直接对以上参数进行修改,但是只在当前的Session及其衍生Session生效,不推荐
在/etc/security/limits.conf中进行永久修改,格式:
<domain> <type> <item> <value>
(参考limits.conf中的注释部分的说明)
修改之后重新登录即可生效

* soft core unlimited
* hard core unlimited

开机自启动

将启动命令添加到/etc/rc.d/rc.local中

*          soft    nproc     unlimited
*          hard    nproc     unlimited

*          soft    nofile    1024000
*          hard    nofile    1024000

## 当前用户最大登录数
## max number of logins for this user
* soft maxlogins 100
* hard maxlogins 100

## 系统最大登录用户数
## max number of logins on the system
* soft maxsyslogins 100
* hard maxsyslogins 100

Cannot allocate memory 问题的处理

查看最大进程数 sysctl kernel.pid_max
查看进程数 ps -eLf | wc -l

确认是进程数满了

临时修改:
echo 1000000 > /proc/sys/kernel/pid_max

永久生效:

echo "kernel.pid_max=1000000 " >> /etc/sysctl.conf
sysctl -p

猜你喜欢

转载自www.cnblogs.com/CSunShine/p/11479448.html