Linux内核参数调优主要是通过修改/proc伪文件系统和/etc/sysctl.conf配置文件的参数来实现的。
/proc目录结构如下:
/proc/driver 与驱动器相关的信息
/proc/fs 文件系统参数
/proc/net 网络信息
/proc/pid 每个进程的信息
/proc/sys 内核参数
/proc/scsi 与scsi相关的信息
/proc/meminfo 内存相关信息
/proc/cpuinfo CPU相关信息
/proc/loadavg 系统负载
/proc/modules 系统加载的模块或驱动
/proc/partitions 系统分区信息
/proc/version 内核版本信息
/proc/stat CPU利用率、磁盘、内存页
/proc/devices 可用设备列表
/proc/sys/kernel 通用内核参数
/proc/sys/vm 内存管理参数
/proc/sys/dev 与设备相关的信息
/proc/sys/net 网络信息
某个进程目录下的文件说明如下:
/proc/pid/fd 进程打开的文件描述符
/proc/pid/exe 进程的可执行文件
/proc/pid/cmdline 当前进程运行的一些参数
/proc/pid/environ 当前进程的环境变量
/proc/pid/status 当前进程的基本状态
vim /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1 #开启SYN Cookies。可以防范少量的SYN***。
net.ipv4.ip_local_port_range = 10000 65535 #设置向外连接的端口范围
net.ipv4.route.gc_timeout = 100 #路由缓存刷新频率
net.core.netdev_max_backlog = 16384 #允许排队更多的报文
net.core.somaxconn = 16384 #指定更大的accept队列backlog
net.ipv4.tcp_max_syn_backlog = 16384 #增加SYN队列长度
net.ipv4.tcp_synack_retries = 1 #重新发送响应的次数
net.ipv4.tcp_retries2 = 5 #向远程主机重新发送数据的次数
net.ipv4.tcp_keepalive_time = 1200 #内核向远程主机发送Keepalive消息的频度
net.ipv4.tcp_keepalive_intvl = 30 #内核向远程主机发送探测消息的间隔
系统优化脚本:
#!/bin/bash
yum -y groupinstall "Development tools"
cd /usr/local/src
wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sed -i 's/start on control-alt-delete/#start on control-alt-delete/' /etc/init/control-alt-delete.conf
sed -i 's@exec /sbin/shutdown -r now "Control-Alt-Delete pressed"@#exec /sbin/shutdown -r now "Control-Alt-Delete pressed"@' /etc/init/control-alt-delete.conf
service iptables stop
chkconfig iptables off
ulimit -SHn 65534
echo "ulimit -SHn 65534" >> /etc/rc.local
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 10000 65535
net.ipv4.route.gc_timeout = 100
net.core.netdev_max_backlog = 16384
net.core.somaxconn = 16384
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_intvl = 30
EOF
/sbin/sysctl -p
for i in `chkconfig | grep 3:on | awk '{print $1}'`
do
chkconfig –level 3 $i off
done
for service in crond rsyslog sshd network
do
chkconfig –level 3 $service on
done
reboot
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/182598.html