Bootstrap

【Linux 从基础到进阶】进程管理与性能调优

进程管理与性能调优

引言

在 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 博客中查阅相关内容。

;