文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

优化了一波Linux性能,面试官让我出门左拐

2024-11-30 16:43

关注

Linux

关于 Linux​ 系统是什么东西,我们在这里直接不进行赘述了,毕竟大家已经都是作为有经验的开发人员,就算是没有工作经验的人,至少也都知道,目前市场上比较流行的操作系统,就这么几种了,而这个Linux​ 也是我们在开发中经常用到的,但是你真的会 Linux​ 一些高级操作么?比如如何优化 Linux 的各种性能。

Linux 的性能优化

说实话,干开发的,说到性能优化,那可不单单只是对于 Linux 来进行,而是针对各个方面的内容,比如::

程序设计、编程语言,再到系统、存储、网络等各种 底层基础设施的方方面面,每一个组件都有可能出问题,而且很有可能多个组件同时出问题。

了不起之前也说了关于这个 SQL​ 方面的优化,我们今天只是来说这个 Linux 的性能优化的。

要说性能优化,肯定得说性能指标,那么性能指标指的是什么呢?

性能指标:“高并发”和“响应快”是从应用负载的视角来考察性能,直接影响了产品终端的用户体验。也正对应着性能优化的两个核心指标——“吞吐”和“延时”。

Linux 性能优化-CPU

既然说到 CPU 的性能优化,那么首先我们要知道一个概念,那就是平均负载率。

平均负载率是什么呢?

平均负载是指单位时间内,系统处于 可运行状态 和 不可中断状态 的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。

切记,这个平均负载率不是说 CPU 的使用率,而是平均活跃进程数。

至于这个可运行进程呵呵这个不可终端状态进程迁就更简单了。

是指正在使用 CPU​ 或者正在等待 CPU​ 的进程,也就是我们常用 ps​ 命令看到的,处于 R​ 状态(Running​ 或 Runnable)的进程

是正处于内核态关键流程中的进程,并且这些流程是不可打断的, 比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps​ 命令中看到的 D​ 状态 (Uninterruptible Sleep​,也称为 Disk Sleep)的进程。

那么我们应该怎么取查看系统的负载呢?

uptime

结果就是上面的图,那么都代表了什么意思呢?

17:17:34 // 当前时间
up 8 days // 系统运行时间
3 users // 正在登录用户数
load average: 0.16, 0.12, 0.17 //三个数字呢,依次则是过去 1 分钟、5 分钟、15 分钟的平均负载

如果 1 分钟、5 分钟、15 分钟的三个值基本相同,或者相差不大,那就说明系统负载很平稳。

如果 1 分钟的值远小于 15 分钟的值,就说明系统最近 1 分钟的负载在减少,而过去 15 分钟内却有很大的负载。

如果 1 分钟的值远大于 15 分钟的值,就说明最近 1 分钟的负载在增加,这种 增加有可能只是临时性的,也有可能还会持续增加下去,所以就需要持续观察。一旦 1 分钟的平均负载接近或超过了 CPU 的个数,就意味着系统正在发生过载的问题,这时就 得分析调查是哪里导致的问题,并要想办法优化了。

其实总结起来就很简单,如果 load average 参数三个参数区别不大,那么就是很平稳,如果第一个小于第三个并且差值很大,那么负载很大,如果第一个值远大于第三个只,那么就得需要排查一下,会不会出现超出负载的状况了。

那么这个平均负载什么时候是最合适的呢?

其实这个平均负载最合适的状态就是和 CPU​ 的个数持平,怎么查看 CPU 的个数呢?

cat /proc/cpuinfo | grep 'processor' | wc -l
8

我们可以看到,这个逻辑 CPU 的个数是 8个,

当平均负载比 CPU 个数还大的时候,系统已经出现 了过载。在观察负载数据时,我们有三个时间点的数据,因此 都要看。三个不同时间间隔的平均值,其实给我们提供了,分析系统负载趋势的 数据来源,让我们能更全面的理解目前的负载状况。

当平均负载高于 CPU 数量 70% 的时候,你就应该分析排查负载高的问题了(70% 这个数字并不是绝对的,最推荐的方法)。

其实 Linux 也是有很多的系统压力测试工具的。

比如:sysstat 工具,就是,用来监控和分析系统的性能。

至于工具怎么用,了不起在这里就不多做介绍了,毕竟这个内容不是咱们今天想说的。

其实主要就是来定位哪个异常的进程,然后吧这个异常的线程直接给他干掉,先保证 Linux 的正常,然后在找这个异常进程出现的原因,最终解决掉这个问题。

CPU 使用率

上面我们说到了这个 CPU​ 使用率,那么什么是 CPU 使用率呢?

CPU 使用率 = 1- (空闲时间/总 CPU 时间)

其实还可以使用 top 命令来查看系统总体的CPU和内存使用情况,以及各个进程的资源使用情况。

知道怎么通过 CPU​ 来优化 Linux 性能了么?学会了么?

来源:Java极客技术内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯