Linux优化体系
· 阅读需 18 分钟
1. Linux系统优化
1.1 基础必备优化
-
关闭SElinux
-
Firewalld (CentOS7)
-
Iptables (CentOS6)
-
安全组 (阿里云)
-
添加普通用户,配置sudo,预防root密码忘记
tuboshu ALL=(ALL) NOPASSWD:ALL 或 tuboshu ALL=(ALL) NOPASSWD:/bin/su
-
hosts文件解析当前的主机名
-
锁定关键文件 chattr lsattr
- 基于文件系统的权限(系统隐藏权限)
- 给配置文件 +a 只能追加
- 给命令 +i 不能修改
-
系统字符集:
- 默认都是UTF-8
- 语言 en_US(推荐)
- 中文环境 zh_CN.UTF-8
-
调整用户登录提示信息 /etc/motd
-
清空 /etc/issue /etc/issue.net
1.2 基础服务优化
-
ssh 优化
cat /etc/ssh/sshd_config
UseDNS no # 禁止IP解析为对应的域名
GSSAPIAuthentication no
Port 52113 # 自定义端口
PermitRootLogin no #是否准许root远程登录
PasswordAuthentication yes #是否开启密码登录
ListenAddress 10.0.0.7:52113 #ListenAddress 准许用户从哪个网卡连接 还可以同时指定端口
ListenAddress 172.16.1.7:22 -
yum源:修改系统默认的yum源,增加epel源
-
时间同步:定时任务+ntpdate/chrony
-
调整文件描述符
-
每个进程可以打开的最大文件数量
# 1. 临时
ulimit -n65535
# 2. 永久 /etc/security/limits.conf #重启生效
echo '* - nofile 65535 ' >>/etc/security/limits.conf
# 3. 或者写为两行:
soft nofile 65535
hard nofile 65535 -
故障案例: 如果 ulimit 文件描述符设置过小 系统提示
too many open files
-bash: start_pipeline: pgrp pipe: Too many open files
vim: error while loading shared libraries: libm.so.6: cannot open shared object file: Error 24
-
-
修改历史命令环境变量
命令 描述 TMOUT 超时时间 HISTSIZE 控制history记录条数 HISTFILESIZE 文件记录条数 HISTCONTROL 控制history是否记录用过的命令 PROMPT_COMMAND 下1个命令之前会运行环境变量里面的命令,常用语用户审计 -
time out 不进行任何操作 300秒自动退出用户
export TMOUT=300
-
HIST history
export HISTFILE=1000 # history命令最多记录条数
export HISTFILESIZE=1000 # history 历史记录的文件里面最多记录条数 -
清空命令历史记录
history -c
-
把当前的shell历史命令内存缓冲区的内容写入命令历史文件
history -w
-
控制history命令如何记录历史命令
exprot HISTCONTROL=ignorespace # 只要以空格开头的命令 history不记录
-
1.3 内核优化
-
优化文件 /etc/sysctl.conf
-
参数生效命令
sysctl -p
-
内核参数存放文件 /proc/sys
内核参数及含义 | 含义 | 默认 |
---|---|---|
net.ipv4.ip_forward=1 | 是否开启内核转发 | 0 |
net.ipv4.icmp_echo_ignore_all=1 | 是否准许被ping | 0 |
net.ipv4.tcp_tw_recycle=1 | 开启tcp回收功能 | 0 |
net.ipv4.tcp_tw_reuse=1 | 开启tcp复用(重复利用) | 0 |
vm.swapiness=0 | 设置系统是否优先使用物理内存,数值越小越优先使用物理内存 | 30(C7) |
2. 服务优化之nginx
2.1 编译安装nginx
- 正式安装前的准备
# 卸载之前yum安装的nginx
分享Linux系统性能优化的实用技巧和最佳实践,提升服务器运行效率。