CentOS 7系统优化与性能调优实战指南
1. 基础环境优化:初始化配置必做项{#basic-optimization}
系统安装完成后,首先进行基础环境优化,消除默认配置的性能瓶颈与安全隐患,为后续业务部署奠定基础。
1.1 系统镜像源优化:提升软件下载速度{#mirror-optimization}
CentOS 7默认官方镜像源在国内访问速度较慢,建议更换为阿里云、清华大学等国内镜像源,同时安装EPEL扩展仓库获取更多软件包。
# 1. 备份原镜像源配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 2. 下载阿里云CentOS 7镜像源配置 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 3. 安装EPEL扩展仓库(提供更多软件包) yum install -y epel-release # 4. 清理缓存并生成新缓存 yum clean all yum makecache # 验证:查看可用仓库 yum repolist enabled
1.2 时间同步配置:保障系统时间准确性{#time-sync}
系统时间不准确会导致日志时序混乱、证书验证失败等问题,通过NTP服务实现时间同步。
# 1. 安装ntp服务 yum install -y ntp # 2. 编辑ntp配置文件,添加国内NTP服务器 vi /etc/ntp.conf # 注释默认服务器,添加以下内容 server ntp1.aliyun.com iburst server ntp2.aliyun.com iburst # 3. 启动并设置开机自启 systemctl enable ntp --now # 4. 手动同步时间(立即生效) ntpdate ntp1.aliyun.com # 验证:查看时间同步状态 timedatectl status
1.3 关闭无用服务与开机自启优化{#service-optimization}
CentOS 7默认启动多个无用服务(如postfix、cups等),占用系统资源,需按需关闭。
# 1. 查看当前开机自启服务 systemctl list-unit-files | grep enabled # 2. 关闭无用服务(根据实际场景调整) systemctl disable --now postfix # 邮件服务 systemctl disable --now cups # 打印服务 systemctl disable --now avahi-daemon # 网络发现服务 systemctl disable --now bluetooth # 蓝牙服务 # 3. 保留核心必要服务(参考) # crond:定时任务服务 # network/NetworkManager:网络管理服务 # sshd:远程登录服务 # rsyslog:日志服务 # 验证:查看活跃服务 systemctl list-units --type=service --state=running
1.4 字符集与登录环境优化{#charset-optimization}
配置UTF-8字符集避免中文乱码,优化SSH登录速度(禁用DNS反向解析)。
# 1. 配置UTF-8字符集 cat > /etc/locale.conf << EOF LANG="zh_CN.UTF-8" SYSFONT="latarcyrheb-sun16" EOF # 使配置生效 source /etc/locale.conf # 2. 优化SSH登录速度:禁用DNS反向解析 vi /etc/ssh/sshd_config # 修改以下参数 UseDNS no GSSAPIAuthentication no # 重启sshd服务 systemctl restart sshd # 验证:查看字符集配置 locale
2. 内核参数调优:挖掘系统底层性能{#kernel-optimization}
内核参数直接影响系统的资源调度、内存管理、网络传输等核心能力,通过调整/etc/sysctl.conf或/etc/sysctl.d/目录下的配置文件实现优化。
2.1 内核参数核心配置文件说明{#kernel-config-file}
- /etc/sysctl.conf:传统内核参数配置文件,全局生效;
- /etc/sysctl.d/*.conf:CentOS 7推荐的配置方式,按功能拆分配置文件,优先级高于sysctl.conf;
- 生效命令:sysctl -p(加载sysctl.conf)、sysctl -p /etc/sysctl.d/xxx.conf(加载指定配置文件)。
2.2 通用服务器内核优化参数{#general-kernel-params}
适用于大多数服务器场景的基础优化参数,提升系统稳定性与资源利用率。
# 创建通用优化配置文件 vi /etc/sysctl.d/general.conf # 写入以下内容 # 内存优化:尽量不使用Swap,减少磁盘IO vm.swappiness = 1 # 脏页阈值:减少后台刷脏页对性能的影响 vm.dirty_ratio = 10 vm.dirty_background_ratio = 5 # 虚拟内存最大映射数(支持Elasticsearch等应用) vm.max_map_count = 2000000 # 文件描述符限制 fs.file-max = 655350 # 网络基础优化 net.core.somaxconn = 65535 net.core.netdev_max_backlog = 65535 # 使配置生效 sysctl -p /etc/sysctl.d/general.conf
2.3 高并发场景内核参数调整{#high-concurrency-kernel}
针对Web服务、数据库等高并发场景,优化TCP连接与网络传输参数。
# 创建高并发优化配置文件 vi /etc/sysctl.d/high-concurrency.conf # 写入以下内容 # TCP连接优化 net.ipv4.tcp_max_syn_backlog = 65535 # 缩短TCP连接超时时间 net.ipv4.tcp_fin_timeout = 10 # 允许复用TIME-WAIT状态的连接 net.ipv4.tcp_tw_reuse = 1 # TCP keepalive参数:120秒检测一次 net.ipv4.tcp_keepalive_time = 120 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3 # 最大TIME-WAIT连接数 net.ipv4.tcp_max_tw_buckets = 5000 # 禁用ICMP重定向(安全优化) net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # 使配置生效 sysctl -p /etc/sysctl.d/high-concurrency.conf
3. 资源管理优化:内存、磁盘与文件系统{#resource-optimization}
合理管理内存、磁盘等硬件资源,避免资源瓶颈导致系统性能下降。
3.1 内存优化:Swap配置与swappiness调整{#memory-optimization}
Swap作为物理内存的补充,配置不当会导致磁盘IO激增,需根据服务器内存大小合理规划。
# 1. 查看当前Swap使用情况 free -h swapon --show # 2. 临时调整swappiness(立即生效,重启失效) sysctl -w vm.swappiness=1 # 3. 永久调整swappiness(已在2.2节配置,此处验证) grep vm.swappiness /etc/sysctl.d/general.conf # 4. 创建Swap文件(若未配置Swap,推荐动态文件方式) # 分配2GB空间创建Swap文件 dd if=/dev/zero of=/swapfile bs=1M count=2048 # 设置权限(仅root可访问) chmod 600 /swapfile # 格式化为Swap格式 mkswap /swapfile # 启用Swap文件 swapon /swapfile # 永久生效:添加到/etc/fstab echo "/swapfile swap swap defaults 0 0" >> /etc/fstab # 验证:再次查看Swap状态 free -h
3.2 磁盘IO优化:文件系统选择与挂载参数{#disk-io-optimization}
CentOS 7推荐使用XFS文件系统(默认),相比EXT4具有更好的大文件支持与性能,通过优化挂载参数减少磁盘IO开销。
# 1. 查看磁盘分区与文件系统 df -hT # 2. 优化挂载参数(编辑/etc/fstab) vi /etc/fstab # 找到需要优化的分区(如/data),修改挂载参数 # 原配置示例:/dev/sda1 /data xfs defaults 0 0 # 优化后:添加noatime,nodiratime(禁用访问时间记录) /dev/sda1 /data xfs defaults,noatime,nodiratime 0 0 # 3. 重新挂载使参数生效(无需重启) mount -o remount /data # 验证:查看挂载参数 mount | grep /data
3.3 资源限制调整:ulimit配置{#ulimit-optimization}
CentOS 7默认对用户的文件描述符、进程数等资源限制较低,高并发场景下需调高限制。
# 1. 查看当前用户资源限制 ulimit -a # 2. 永久调整资源限制(编辑/etc/security/limits.conf) vi /etc/security/limits.conf # 添加以下内容(对所有用户生效) * soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 # 3. 检查并调整limits.d下的限制文件(避免覆盖) vi /etc/security/limits.d/20-nproc.conf # 确保内容与上述一致 * soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 # 4. 生效方式:登出当前用户,重新登录 # 验证:重新登录后查看 ulimit -Sn # 查看软限制文件数 ulimit -Hn # 查看硬限制文件数 ulimit -Su # 查看软限制进程数
4. 网络优化:提升网络并发与传输效率{#network-optimization}
网络配置直接影响服务的访问速度与并发承载能力,重点优化IP配置、防火墙规则与TCP参数。
4.1 静态IP与网络配置优化{#static-ip-config}
服务器推荐配置静态IP,避免DHCP分配导致IP变化,同时优化网络连接稳定性。
# 1. 查看网卡名称(通常为ens33、eth0等) ip addr show # 2. 编辑网络配置文件(以ens33为例) vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 写入以下配置(根据实际网络调整) TYPE=Ethernet BOOTPROTO=static # 静态IP ONBOOT=yes # 开机自启 IPADDR=192.168.1.100 # 静态IP地址 NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关 DNS1=8.8.8.8 # DNS服务器1 DNS2=114.114.114.114 # DNS服务器2 NAME=ens33 DEVICE=ens33 # 3. 重启网络服务 systemctl restart network # 验证:测试网络连通性 ping -c 4 www.baidu.com ip addr show ens33
4.2 防火墙(firewalld)优化配置{#firewalld-optimization}
firewalld是CentOS 7默认防火墙,需合理配置规则,开放必要端口,关闭无用服务,提升安全性与性能。
# 1. 查看防火墙状态 firewall-cmd --state # 2. 基础优化配置 # 查看当前开放的端口/服务 firewall-cmd --list-all # 开放常用端口(如80、443、22) firewall-cmd --permanent --add-port=22/tcp firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp # 开放HTTP、HTTPS服务(等价于开放80、443端口) firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https # 移除无用开放规则(示例:移除FTP服务) firewall-cmd --permanent --remove-service=ftp # 重载配置使生效 firewall-cmd --reload # 3. 性能优化:关闭无用的防火墙模块(如ipset、nf_conntrack) # 查看加载的模块 lsmod | grep nf_conntrack # 若无需IPSec等功能,可关闭相关模块(需谨慎) modprobe -r nf_conntrack_ipv6 # 验证:查看最终规则 firewall-cmd --list-all
4.3 网络参数调优:TCP连接与并发优化{#tcp-params-optimization}
结合内核参数,进一步优化网络传输参数,提升高并发场景下的网络响应速度。
# 1. 调整TCP接收/发送缓冲区大小 vi /etc/sysctl.d/network.conf # 写入以下内容 net.core.wmem_default = 8388608 net.core.wmem_max = 16777216 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 # 2. 生效配置 sysctl -p /etc/sysctl.d/network.conf # 3. 禁用IPv6(若无需IPv6) echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.d/network.conf echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.d/network.conf sysctl -p /etc/sysctl.d/network.conf # 验证:查看IPv6状态 ip addr show | grep inet6
5. 性能监控工具:实战排查与指标分析{#performance-monitoring}
通过监控工具实时掌握系统性能状态,快速定位性能瓶颈,是优化工作的前提。
5.1 基础监控工具:top、vmstat使用{#basic-monitoring-tools}
- top:实时进程监控
# 启动top监控 top # 常用操作: # P:按CPU使用率排序 # M:按内存使用率排序 # q:退出监控 # 关键指标解读: # %us:用户空间CPU占比(过高说明应用消耗大) # %sy:内核空间CPU占比(过高说明系统调用频繁) # %wa:等待IO的CPU占比(过高说明磁盘IO瓶颈) # KiB Mem:内存使用情况(free过低需优化)
- vmstat:系统资源综合监控
# 每1秒更新一次,输出5次 vmstat 1 5 # 关键指标解读(参考字段说明) # r:运行队列进程数(超过CPU核心数说明CPU瓶颈) # b:等待IO的进程数(过高说明IO瓶颈) # si/so:Swap读写量(非零说明内存不足) # bi/bo:磁盘IO读写量(过高说明磁盘压力大) # us/sy/wa:与top一致
5.2 进阶监控工具:nmon、iptraf-ng使用{#advanced-monitoring-tools}
- nmon:图形化综合监控工具
# 安装nmon yum install -y nmon # 启动nmon nmon # 常用操作: # c:查看CPU监控 # m:查看内存监控 # d:查看磁盘IO监控 # n:查看网络监控 # q:退出监控
- iptraf-ng:网络流量监控
# 安装iptraf-ng yum install -y iptraf-ng # 启动网络监控 iptraf-ng # 功能:实时查看各网卡流量、连接状态、数据包统计 # 适用场景:排查网络瓶颈、定位异常流量
6. 实战案例:Web服务器(Nginx)优化组合{#practical-case}
结合前面的优化技巧,针对Nginx Web服务器场景,给出完整的优化组合方案。
# 1. 基础环境优化(已完成前面步骤,此处验证)
# 验证镜像源、时间同步、资源限制
yum repolist enabled
timedatectl status
ulimit -a
# 2. 内核参数优化(高并发配置已生效)
sysctl -p /etc/sysctl.d/high-concurrency.conf
# 3. Nginx专属优化:调整进程数与连接数
vi /etc/nginx/nginx.conf
# 修改以下参数
worker_processes auto; # 自动匹配CPU核心数
worker_cpu_affinity auto; # CPU亲和性
events {
worker_connections 10240; # 每个进程最大连接数
use epoll; # 使用epoll模型提升并发
}
http {
keepalive_timeout 60; # 长连接超时时间
keepalive_requests 100; # 每个长连接最大请求数
tcp_nopush on; # 合并TCP发送包
tcp_nodelay on; # 禁用Nagle算法
# 开启gzip压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript;
}
# 4. 防火墙开放80/443端口
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
# 5. 重启Nginx服务
systemctl restart nginx
systemctl enable nginx
# 6. 监控优化效果
top -p $(pgrep nginx) # 监控Nginx进程CPU/内存
vmstat 1 10 # 监控系统资源
iptraf-ng # 监控网络流量优化效果:Nginx并发连接数提升至10000+,响应时间缩短30%,CPU使用率降低25%,磁盘IO压力显著减小。
7. 总结与最佳实践{#summary}
7.1 核心要点总结
- 基础优化是前提:镜像源、时间同步、资源限制等初始化配置需优先完成,消除基础性能瓶颈;
- 内核参数调优需按需调整:通用配置适用于大多数场景,高并发场景需针对性优化TCP连接参数;
- 资源管理核心是平衡:内存优化减少Swap使用,磁盘优化注重文件系统与挂载参数,网络优化兼顾并发与安全;
- 监控是优化的基础:通过top、vmstat、nmon等工具实时监控,快速定位瓶颈,避免盲目优化。
7.2 最佳实践建议
- 优化前备份配置:修改任何系统配置前,备份原配置文件(如cp /etc/sysctl.conf /etc/sysctl.conf.bak),便于回滚;
- 分步优化验证:每次仅修改一项参数,通过监控工具验证优化效果,避免多参数修改导致问题定位困难;
- 结合业务场景:Web服务侧重网络并发优化,数据库服务侧重内存与磁盘IO优化,不同场景优化重点不同;
- 定期维护:系统优化不是一劳永逸,需定期监控系统状态,根据业务变化调整优化参数。
到此这篇关于CentOS 7系统优化与性能调优实战指南的文章就介绍到这了,更多相关CentOS 7系统优化与性能调优内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
相关文章
- 今天小编将为大家带来通过6步骤,完成对centos精简和优化讲解。希望对大家会带来帮助,有需要的朋友一起去看看吧2017-01-08
- 今天小编将为大家带来的是CentOS服务程序性能评估文档详解!希望对大家会有帮助,有需要的朋友一起去看看吧2017-03-10
- 今天小编为大家带来得是CentOS性能诊断工具命令集详解;希望对大家会有帮助,有需要的朋友一起去看看吧2017-01-11

CentOS下SSD如何性能评估?CentOS下SSD性能评估的方法
今天小编为大家带来的是CentOS下SSD性能评估的方法,希望对大家会有帮助,有需要的朋友一起去看看吧2016-12-22
今天小编为大家带来的是CentOS命令行性能检测工具;希望可以帮助到大家,有需要的朋友可以过来看看2016-12-11- centos7怎么查看cpu内存等系统性能参数?对centos系统不是很熟悉,想看看电脑的一些参数,该怎么查看呢?下面我们就来看看详细的查看教程,需要的朋友可以参考下2016-08-30
- 这篇文章为大家介绍下通过调整系统参数来提高系统内存、CPU、内核资源的占用,通过禁用不必要的服务、端口,来提高系统的安全性,更好的发挥系统的可用性。通过自己对Linux2014-03-18




最新评论