Linux系统优化
net.ipv4.ip_local_port_range = 32768 65000
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 65536 8388608
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
kernel.panic = 5
vm.swappiness = 51
history历史命令中加入执行时间并保存10000条,开启命令审计
# 配置
'''
export HISTTIMEFORMAT="%F %T `who a mi|awk '{print \$1\" \"\$2\" \"\$5}'` "
export PROMPT_COMMAND='{ date "+%y-%m-%d %T ### $(who a mi|awk "{print \$1\" \"\$2\" \"\$5}") #### $(whoami) ####$(history 1 | { read x cmd;echo "$cmd";})"; } >> $HISTORY_FILE'
export HISTORY_FILE=/var/log/usermonitor/usermonitor.log
export HISTSIZE=10000
'''
# 生效配置
'''
source /etc/profile
chown nobody.nobody /var/log/usermonitor/usermonitor.log
chmod 002 /var/log/usermonitor/usermonitor.log
chattr +a /var/log/usermonitor/usermonitor.log
'''
命令前面加一个空格,不记录历史命令(用于在终端输入密码等敏感操作)
echo HISTCONTROL=ignorespace >> /etc/profile
关闭 "You have mail in /var/spool/mail/root"提示
echo "unset MAILCHECK" >> /etc/profile
设置终端300s超时退出
echo "export TMOUT=300" >> /etc/profile
终端提示符设置
#echo 'export PS1="\u@\h[\`pwd\`]# "' >> /etc/profile
if [ "$(id -u)" -eq 0 ];then
export PS1="\u@\h[\`pwd\`]# "
else
export PS1="\u@\h[\`pwd\`]$ "
fi
字符集
echo "export LANG="zh_CN.UTF-8"" >> /etc/profile
centos6:/etc/sysconfig/il8n文件中配置LANG="zh_CN.UTF-8"
centos7:/etc/locale.conf文件中配置LANG="zh_CN.UTF-8"
英文字符集:LANG="en_US.UTF-8"
source /etc/locale.conf
克隆机器优化
修改 /etc/sysconfig/network-script/ifconfig-eth0文件
(UUID、MAC地址删除)(IP地址手动设置)
rm -rf /etc/udev/rules.d/70-persistent-net.rules
reboot
文件最大连接
# centos6
'''
# /etc/security/limits.conf
* soft nproc 65536
* hard nproc 65536
* soft nofile 65535
* hard nofile 65535
'''
'''
# /etc/security/limits.d/20-nproc.conf
* soft nproc 65535
root soft nproc unlimited
'''
# centos7:
'''
# /etc/systemd/system.conf
DefaultLimitNPROC=65535
DefaultLimitNOFILE=65535
'''
'''
# /etc/systemd/user.conf
DefaultLimitNPROC=65535
DefaultLimitNOFILE=65535
'''
开机启动优化(根据实际需求优化)
#该方式仅适用centos6
for i in `chkconfig | egrep -v "crond|rsyslog|sshd|network|sysstat"|awk '{print $1}'`
do
chkconfig $i off
done
内核优化
net.ipv4.tcp_syncookies = 1
表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,但对于大并发系统,要禁用此设置
net.core.somaxconn = 2048
定义了系统中每一个端口最大的监听队列的长度
net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1
表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30
表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.core.somaxconn = 2048
定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128.限制了每个端口接收新tcp连接侦听队列的大小。
vm.overcommit_memory = 1
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
echo never > /sys/kernel/mm/transparent_hugepage/enabled
关闭透明大页
禁Ping
临时禁止:echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
永久禁止: /etc/sysctl.conf +: net.ipv4.icmp_echo_ignore_all=0
设置永久别名
cat >> ~/.bashrc << EOF
alias ll='ls -lrt'
EOF
新机器部署环境配置
1.根据服务修改内核参数
2.修改ulimit文件句柄
3.配置ntp
#服务端
server 127.127.1.0
fudge 127.127.1.0 startum 8 #这行是时间服务器的层次。设为0则为顶级,如果要向别的NTP服务器更新时间,请不要把它设为0
#客户端
sed -i.bak "s/^server/#server/g;20aserver 31.1.70.70 iburst" /etc/ntp.conf
4.配置zabbix-agent
sed -i.bak "s/127.0.0.1/31.4.248.70/g;s/Zabbix server/$HOSTNAME/" /etc/zabbix/zabbix_agentd.conf
5.profile配置历史命令审计
6.关闭防火墙、selinux
7.根据服务安装相应依赖,如jdk、gcc
8.划分程序用户及程序目录属主属组
9.配置~/.bash_profile
#alias 变量='command'
alias ds='du --max-depth=1|sort -n'
标签:系统优化,tcp,echo,etc,export,ipv4,net
From: https://www.cnblogs.com/ican97/p/17781664.html