Linux 性能调优技巧

文章目录

引言

Linux 作为一种广泛使用的操作系统,在服务器、桌面和移动设备等多种场景下运行。优化 Linux 系统的性能可以提高应用程序的响应速度、提升系统资源利用率以及增强整体的用户体验。本文将详细介绍一些 Linux 性能调优的技巧,并提供相关的代码示例。

CPU 性能调优

1.查看 CPU 使用情况

  • 使用top命令可以实时查看系统的 CPU 使用情况。在命令行中输入top,可以看到各个进程占用 CPU 的百分比、CPU 负载等信息。
  • 另外,mpstat命令可以提供更详细的多 CPU 核心使用信息。例如,mpstat -P ALL 1命令将每秒显示所有 CPU 核心的统计信息,包括用户态、内核态、空闲等时间占比。

2.调整进程优先级

  • 在 Linux 中,可以使用nice命令调整进程的优先级。nice值的范围是 -20(最高优先级)到 19(最低优先级)。默认情况下,进程的nice值为 0。
  • 例如,要以较低的优先级运行一个长时间运行的脚本long_running_script.sh,可以使用以下命令:
bash 复制代码
nice -n 10./long_running_script.sh

如果要调整已经运行的进程的优先级,可以使用renice命令。例如,要将进程 ID 为 1234 的进程的优先级调整为 5,可以使用:

bash 复制代码
renice -n 5 -p 1234

3.CPU 频率调整(针对支持动态频率调整的 CPU)

  • 现代 CPU 支持动态频率调整以节省能源。可以使用cpufreq -utils工具包来管理 CPU 频率。
  • 首先,安装cpufreq -utils(在基于 Debian 或 Ubuntu 的系统上,可以使用sudo apt-get install cpufreq -utils)。
  • 然后,可以使用cpufreq -info查看 CPU 频率相关信息。
  • 要将 CPU 设置为最高性能模式,可以使用sudo cpufreq -set -g performance。
  • 要将 CPU 设置为节能模式,可以使用sudo cpufreq -set -g powersave。

内存性能调优

1.查看内存使用情况

  • free命令是查看内存使用情况的常用工具。输入free -h可以以人类可读的格式(如 KB、MB、GB 等)显示系统的总内存、已使用内存、空闲内存、缓存和缓冲区等信息。
  • vmstat命令也可以提供内存相关的统计信息,如内存交换(swap)活动等。例- 如,vmstat 1将每秒显示一次内存相关的统计信息。

2.优化内存缓存

  • Linux 内核使用内存缓存来提高文件系统和磁盘 I/O 的性能。有时候,可以通过调整swappiness参数来优化内存使用。swappiness的值表示将内存数据交换到磁盘交换空间(swap)的倾向程度,取值范围是 0 - 100。
  • 要查看当前的swappiness值,可以使用cat /proc/sys/vm/swappiness。
  • 可以通过编辑/etc/sysctl.conf文件并添加或修改vm.swappiness = 新的值(例如,将swappiness设置为 10 以减少不必要的内存交换),然后运行sudo sysctl -p使设置生效。

磁盘性能调优

1.查看磁盘 I/O 情况

  • iostat命令可以用于查看磁盘 I/O 的统计信息。例如,iostat -x 1将每秒显示一次扩展的磁盘 I/O 统计信息,包括每秒读写次数、每秒读写数据量、平均等待时间等。
  • iotop命令可以实时查看哪些进程正在进行磁盘 I/O 操作以及它们的读写速度。

2.磁盘调度算法调整

  • Linux 内核支持多种磁盘调度算法,如cfq(完全公平队列)、deadline和noop。不同的算法适用于不同的工作负载。
  • 可以使用cat /sys/block/sda/queue/scheduler(假设sda是要查看的磁盘设备)来查看当前磁盘使用的调度算法。
  • 要临时将磁盘调度算法设置为deadline(例如,对于数据库服务器可能更适合),可以使用sudo echo deadline > /sys/block/sda/queue/scheduler。
  • 要永久修改磁盘调度算法,可以在/etc/rc.local文件中添加相应的命令(在系统启动时执行)。

网络性能调优

1.查看网络使用情况

  • ifconfig命令可以查看网络接口的基本信息,如 IP 地址、MAC 地址、接收和发送的数据包数量等。
  • netstat命令可以查看网络连接状态、端口监听情况等。例如,netstat -tuln可以显示正在监听的 TCP 和 UDP 端口。
  • nethogs命令可以实时查看每个进程的网络带宽使用情况。

2.调整网络参数

  • 可以通过调整/etc/sysctl.conf文件中的网络参数来优化网络性能。例如:
  • 增大网络接收缓冲区和发送缓冲区大小。添加或修改以下内容:
bash 复制代码
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

然后运行sudo sysctl -p使设置生效。

总结

Linux 性能调优是一个复杂而持续的过程,需要根据系统的具体需求和负载情况来选择合适的调优技巧。通过对 CPU、内存、磁盘和网络等方面进行优化,可以显著提高 Linux 系统的性能,从而更好地满足用户和应用程序的需求。

请注意,在进行任何系统调优操作之前,最好先备份相关的配置文件,并在测试环境中进行充分的测试,以确保调优操作不会对系统造成负面影响。

希望本文对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。

关注我看更多有意思的文章哦!👉👉

相关推荐
姚青&6 分钟前
持续交付与 DevOps 体系
运维·devops
ton_tom12 分钟前
设备驱动程序编程-Linux2.6.10-kdb安装-32位
linux·运维·服务器
Elastic 中国社区官方博客13 分钟前
谁来评判评判者?在 Elasticsearch Workflows 中使用 LLM-as-a-Judge
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
dddwjzx28 分钟前
嵌入式Linux C应用编程入门——进程 ( 二 )
linux·嵌入式
坐望云起1 小时前
FFmpeg.wasm 纯浏览器端视频压缩与格式转换实战:零服务器、零上传、100% 隐私
服务器·ffmpeg·wasm
SSO_Crown1 小时前
AI 招聘管理系统深度评测与选型指南
大数据·运维·人工智能
cft56200_ln2 小时前
gPTP Master 报文目的 MAC 地址
运维·服务器·网络
jieyucx2 小时前
【系统安全铁律】解密 Linux 权限三色数字密码:chmod 最小化赋权与生产环境避坑指南
linux·安全·系统安全·权限·chmod·777
AOwhisky3 小时前
Linux(CentOS)系统管理入门笔记(第四期)——文件系统(下篇):文件与目录操作实战——cpmvmkdirrmln
linux·运维·笔记·centos·云计算·文件系统
岑梓铭3 小时前
考研408《操作系统》复习笔记,第四章《4.2.2 文件操作、文件共享、文件保护》
linux·考研·操作系统·文件系统·408