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
profile文件
# 设置命令历史记录的时间戳格式
export HISTTIMEFORMAT="%F %T `who a mi|awk '{print \$1\" \"\$2\" \"\$5}'` # "
# 在每次执行命令后将命令添加到历史记录文件中
export PROMPT_COMMAND='history 1 | { read x cmd; echo "$cmd"; } >> $HISTORY_FILE'
# 指定命令历史记录文件的路径
export HISTORY_FILE=/var/log/usermonitor/usermonitor_$(date +%F).log
# 设置历史记录的最大行数
export HISTSIZE=10000
# 忽略以空格开头的命令,避免将敏感命令保存到历史记录中
HISTCONTROL=ignorespace
# 禁用邮件检查
unset MAILCHECK
# 将Go语言的bin目录添加到PATH中
export PATH=$PATH:/usr/local/go/bin
# 设置Shell自动退出时间(单位:秒)
TMOUT=3000
# 根据用户权限设置不同的提示符
if [ "$(id -u)" -eq 0 ]; then
export PS1="\u@\h[\$(pwd)]# " # root用户的提示符
else
export PS1="\u@\h[\$(pwd)]$ " # 非root用户的提示符
fi
# 生效历史命令审计配置
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 "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
文件最大连接
# 可以通过查看 /proc/sys/fs/file-max 文件来获取系统级别的文件句柄上限。
# 这个值表示系统级别的文件描述符总数,可根据这个数值配置open files
# 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
# 永久禁止
echo 'net.ipv4.icmp_echo_ignore_all=1' >> /etc/sysctl.conf && sysctl -p
设置永久别名
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,etc,ipv4,conf,net,usermonitor
From: https://www.cnblogs.com/ican97/p/17926607.html