Linux 性能调优技巧

  • 推荐学习文档
    • golang应用级os框架,欢迎star
    • golang应用级os框架使用案例,欢迎star
    • 案例:基于golang开发的一款超有个性的旅游计划app经历
    • golang实战大纲
    • golang优秀开发常用开源库汇总
    • 想学习更多golang知识,这里有免费的golang学习笔记专栏

文章目录

    • 引言
    • CPU 性能调优
      • 1.查看 CPU 使用情况
      • 2.调整进程优先级
      • 3.CPU 频率调整(针对支持动态频率调整的 CPU)
    • 内存性能调优
      • 1.查看内存使用情况
      • 2.优化内存缓存
    • 磁盘性能调优
      • 1.查看磁盘 I/O 情况
      • 2.磁盘调度算法调整
    • 网络性能调优
      • 1.查看网络使用情况
      • 2.调整网络参数
    • 总结

引言

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,可以使用以下命令:
nice -n 10./long_running_script.sh

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

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文件中的网络参数来优化网络性能。例如:
  • 增大网络接收缓冲区和发送缓冲区大小。添加或修改以下内容:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

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

总结

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/886795.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Springboot vue应急物资供应管理系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…

剖解最小栈

最小栈 思路: 1. 首先实例化两个栈,分别是stack用于存放数据,minstack用于存放最小值 2. 将第一个元素压入两个栈中,判断此时若minStack栈中为空,则表示压入的为第一个数据 if ( minStack.empty () ) { minStack.pus…

【GT240X】【04】你必须知道的 50 多个 Linux 命令

文章目录 一、介绍二、五十个linux命令一览表三、50个命令详解四、结论 你必须知道的 50 多个 Linux 命令 一、介绍 你经常使用 Linux 命令?今天,我们将介绍 50 多个你必须知道的 Linux 命令。下面列出的命令是一些最有用和最常用的 Linux 命令&#x…

IDEA 最新版创建 Sping Boot 项目没有 JDK8 选项的解决方案

问题 今天新建一个 Java 项目写 demo 时,发现 Idea 上只能勾选 Java 17、21、23 三个版本 解决方案 IDEA 页面创建 Spring 项目,其实是访问 spring initializr 去创建项目。我们可以通过阿里云国服去间接创建 Spring 项目。服务器 URL 地址替换为 ht…

蓝桥杯【物联网】零基础到国奖之路:十四. 扩展模块之温湿度传感器

蓝桥杯【物联网】零基础到国奖之路:十四. 扩展模块之温湿度传感器 第一节 硬件解读第二节 CubeMX配置第三节 模版代码 第一节 硬件解读 STS3x-DIS是sensirion新一代温湿度传感器。精度较高,速度较快。SHT3x内部集成了湿度传感器和温度传感器,ADC采样输入…

[网络]抓包工具介绍 tcpdump

一、tcpdump tcpdump是一款基于命令行的网络抓包工具,可以捕获并分析传输到和从网络接口流入和流出的数据包。 1.1 安装 tcpdump 通常已经预装在大多数 Linux 发行版中。如果没有安装,可以使用包管理器 进行安装。例如 Ubuntu,可以使用以下…

9-贪心算法

参考:代码随想录 题目分类大纲如下: 贪心算法理论基础 什么是贪心? 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心的套路(什么时候用贪心) 贪心算法并没有固定的套路,说白了…

OpenSource - 开源WAF_SamWaf

文章目录 PreSafeLine VS SamWaf开发初衷软件介绍架构界面主要功能 使用说明下载最新版本快速启动WindowsLinuxDocker 启动访问升级指南自动升级手动升级 在线文档 代码相关代码托管介绍和编译已测试支持的平台测试效果 安全策略问题反馈许可证书贡献代码 Pre Nginx - 集成Mod…

Java继承、final/protected说明、super/this辨析

目录 1.什么是继承 2.继承的特征 3.子类构造方法 4.super和this辨析 5.再谈初始化 6.protected关键字用法说明 7.final的用法说明 1.什么是继承 上面的这个animal就是基类,我们的这个dog和bird都是继承这个基类的特征,使用的是extends这个关键字&a…

Python编写的贪吃蛇小游戏

安装包 pip install pygame完整代码 import pygame import randompygame.init()# 定义颜色 white (255, 255, 255) black (0, 0, 0) red (213, 50, 80) green (0, 255, 0) blue (50, 153, 213)# 定义屏幕大小 dis_width 800 dis_height 600dis pygame.display.set_mo…

【大数据入门 | Hive】函数{单行函数,集合函数,炸裂函数,窗口函数}

1. 函数简介: Hive会将常用的逻辑封装成函数给用户进行使用,类似于Java中的函数。 好处:避免用户反复写逻辑,可以直接拿来使用。 重点:用户需要知道函数叫什么,能做什么。 Hive提供了大量的内置函数&am…

Redis操作常用API

说明&#xff1a;Redis应用于java项目中&#xff0c;操作Redis数据可以使用API&#xff0c;相较于命令行更方便。使用前&#xff0c;需先添加依赖。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-re…

云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展

本文根据2024云栖大会实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a; 王 峰 | 阿里云智能集团研究员、开源大数据平台负责人 李 钰&#xff5c;阿里云智能集团资深技术专家 范 振&#xff5c;阿里云智能集团高级技术专家 李劲松&#xff5c;阿里云…

【机器学习基础】Transformer学习

Transformer学习 一、输入1. Word Embedding2. Positional EncodingPositional Encoding的计算方法二、自注意力机制二、Add & Norm层1. Add 代表残差连接(Residual Connection)2. Norm= Normalization归一化三、FeedForward层其他资料一、输入 第一步:获取输入句子的每…

基于微信小程序的四六级词汇+ssm(lw+演示+源码+运行)

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;四六级词汇小程序被用户普遍使用&#xff0c;为方便用户能…

银河麒麟V10 SP1如何进入救援模式?

银河麒麟V10 SP1如何进入救援模式&#xff1f; 1、准备工作2、进入BIOS/UEFI进入救援模式注意事项 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在使用银河麒麟高级服务器操作系统V10 SP1时&#xff0c;如果遇到系统无法正常启动或需要进…

搭建基于H.265编码的RTSP推流云服务器

一、前言 网上能够找到的RTSP流地址&#xff0c;均是基于H.264编码的RTSP流地址&#xff0c;无法测试应用是否可以播放H265实时流为此&#xff0c;搭建本地的把H.264转码成H.265的RTSP服务器&#xff0c;不管是通过VLC搭建本地RTSP服务器&#xff0c;还是通过FFmpeg搭建本地RT…

关于HTML 案例_个人简历展示01

案例效果展示 代码 <!DOCTYPE html> <lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>个人简历信息</title> </he…

win11/win10/windows下快安装并使用git

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Git 的特点&#xff1f;二、GIT安装方法1.打开GIT官网2.下载git安装程序整个安装过程基本上直接用默认选项就可以 总结 前言 提示&#xff1a;GIT介绍 GI…

【环境配置】科研小白Windows下安装Git

2024年小白使用Win10安装Git 2.46.2教程&#xff1a; 1 下载安装包 访问下载地址 Git - Downloading Package (git-scm.com) 下载之后打开文件 2 安装过程 点击Next 2.1 选择安装路径 2.2 选择勾选必要组件 2.3 一路Next 这一步直接Next即可 继续点击Next 继续点击Ne…