进程管理与性能调优
引言
在 Linux 系统中,进程是执行中的程序实例。有效的进程管理和性能调优可以提升系统的响应速度和资源利用率。本文将介绍进程管理的基本概念、常用命令,以及性能调优的最佳实践,适用于 CentOS 和 Ubuntu 系统。
1. 进程管理基础
1.1 进程基本概念
- 进程:正在运行的程序实例,每个进程有唯一的进程标识符(PID)。
- 线程:进程内的执行单元,共享进程的资源。
- 守护进程:在后台运行的服务进程,不与用户直接交互。
1.2 查看进程
使用 ps
命令
# 显示所有进程
ps -aux
# 显示指定用户的进程
ps -u username
使用 top
命令
# 实时显示进程信息
top
使用 htop
命令
# 安装 htop (CentOS)
sudo yum install -y htop
# 安装 htop (Ubuntu)
sudo apt install -y htop
# 启动 htop
htop
1.3 进程管理
启动和停止进程
# 启动进程
./myprogram &
# 列出后台进程
jobs
# 停止进程
kill %job_number
杀死进程
# 使用 PID 杀死进程
kill -9 PID
# 使用进程名称杀死进程
pkill -9 process_name
修改进程优先级
# 查看进程优先级
ps -l
# 调整进程优先级(负数为高优先级,正数为低优先级)
renice -n priority -p PID
2. 性能调优
2.1 CPU 调优
查看 CPU 使用情况
# 使用 top 查看 CPU 使用情况
top
# 使用 mpstat 查看多核 CPU 使用情况 (安装 sysstat 包)
sudo yum install -y sysstat # CentOS
sudo apt install -y sysstat # Ubuntu
mpstat -P ALL
限制进程 CPU 使用
# 使用 cpulimit 限制进程 CPU 使用率
sudo apt install -y cpulimit # Ubuntu
sudo yum install -y epel-release && sudo yum install -y cpulimit # CentOS
# 限制进程 CPU 使用率为 50%
sudo cpulimit -p PID -l 50
2.2 内存调优
查看内存使用情况
# 使用 free 命令查看内存使用情况
free -h
# 使用 top 命令查看进程内存使用情况
top
# 使用 vmstat 命令查看内存统计 (安装 sysstat 包)
vmstat
调整虚拟内存(swap)
# 查看当前 swap 使用情况
swapon --show
# 添加新的 swap 文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 持久化 swap 设置
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
2.3 I/O 调优
查看 I/O 使用情况
# 使用 iostat 查看 I/O 使用情况 (安装 sysstat 包)
iostat -x 1 10
# 使用 iotop 实时查看 I/O 使用情况
sudo apt install -y iotop # Ubuntu
sudo yum install -y iotop # CentOS
sudo iotop
调整 I/O 调度算法
# 查看当前 I/O 调度算法
cat /sys/block/sda/queue/scheduler
# 修改 I/O 调度算法为 noop
echo noop | sudo tee /sys/block/sda/queue/scheduler
2.4 网络调优
查看网络使用情况
# 使用 iftop 实时查看网络使用情况
sudo apt install -y iftop # Ubuntu
sudo yum install -y iftop # CentOS
sudo iftop
# 使用 netstat 查看网络连接状态
netstat -tuln
调整网络参数
# 调整 TCP 窗口大小
echo 'net.core.rmem_max=16777216' | sudo tee -a /etc/sysctl.conf
echo 'net.core.wmem_max=16777216' | sudo tee -a /etc/sysctl.conf
# 应用新的网络参数
sudo sysctl -p
总结
通过本文的介绍,您已经了解了 Linux 系统中进程管理和性能调优的基本概念和操作方法。本文提供了适用于 CentOS 和 Ubuntu 系统的具体命令和示例,涵盖了 CPU、内存、I/O 和网络的性能调优策略。合理的进程管理和性能调优可以显著提升系统的稳定性和运行效率。如有任何问题或需要进一步的帮助,请参考 CentOS 官方文档 和 Ubuntu 官方文档 或在 CSDN 博客中查阅相关内容。