深入理解Linux问题分析与性能优化(超详细~)

排查顺序

整体情况:

使用top、htop或atop命令查看进程/线程、CPU和内存的使用情况,了解CPU的使用状况;通过dstat 2命令监控CPU、磁盘I/O、网络I/O、换页、中断和切换,评估系统的I/O状态;利用vmstat 2命令查看内存使用情况,评估内存状态;通过iostat -d -x 2命令查看所有磁盘的I/O情况,了解系统的I/O状态;使用iotop命令查看I/O使用率较高的进程,评估系统的I/O状态;通过perf top命令查看占用CPU最多的函数,分析CPU使用情况;执行perf record -ag — sleep 15;perf report命令查看CPU事件占比和调用栈,分析CPU使用情况;使用sar -n DEV 2命令查看网卡的吞吐,评估网卡状态;通过/usr/share/bcc/tools/filetop -C命令查看每个文件的读写情况,了解系统的I/O状态;使用/usr/share/bcc/tools/opensnoop命令显示正在被打开的文件,评估系统的I/O状态;使用mpstat -P ALL 1命令检查单核CPU是否被过度使用;通过ps aux –sort=-%cpu命令按CPU使用率排序,找出消耗CPU最多的进程;使用ps -eo pid,comm,rss | awk ‘{m=$3/1e6;s[““]+=m;s[$2]+=m} END{for (n in s) printf”%10.3f GB %s\n”,s[n],n}’ | sort -nr | head -20命令统计前20大内存占用情况;使用awk ‘NF>3{s[““]+=s[$1]=$3*$4/1e6} END{for (n in s) printf”%10.1f MB %s\n”,s[n],n}’ /proc/slabinfo | sort -nr | head -20命令统计内核前20大slab的占用情况;进行进程分析,评估进程占用的资源:

使用pidstat 2 -p 进程号命令查看可疑进程的CPU使用率变化情况;使用pidstat -w -p 进程号 2命令查看可疑进程的上下文切换情况;使用pidstat -d -p 进程号 2命令查看可疑进程的I/O情况;使用lsof -p 进程号命令查看进程打开的文件;使用strace -f -T -tt -p 进程号命令显示进程发起的系统调用;进行协议栈分析,评估连接/协议栈状态:

使用ethtool -S命令查看网卡硬件情况;通过cat /proc/net/softnet_stat/ifconfig eth1命令查看网卡驱动情况;使用netstat -nat|awk ‘{print $NF}’|sort|uniq -c|sort -n命令查看连接状态分布;使用ss -ntp或netstat -ntp命令查看连接队列;使用netstat -s命令查看协议栈情况;应用方法论RED方法:监控服务的请求数(Rate)、错误数(Errors)、响应时间(Duration)。Weave Cloud在监控微服务性能时提出的思路。

应用USE方法:监控系统资源的使用率(Utilization)、饱和度(Saturation)、错误数(Errors)。

深入理解Linux问题分析与性能优化(超详细~)学习直通车:

学习Linux内核源码、内存调优、文件系统、进程管理、设备驱动和网络协议栈。

获取Linux内核源码技术学习路线、视频教程和代码资料。

性能分析工具从Linux内核的各个子系统出发,总结了对各个子系统进行性能分析时可选择的工具。然而,尽管这张图是性能分析的最佳参考资料之一,它的具体性还不够。例如,当你需要查看某个性能指标时,图中对应的子系统部分可能提供了多个性能工具供选择。但实际上,并非所有这些工具都适用,具体选择哪个工具,还需要查找每个工具的手册,对比分析后做出决定。

CPU分析思路首先,从CPU的角度来说,主要的性能指标是CPU的使用率、上下文切换以及CPU Cache的命中率等。下图列出了常见的CPU性能指标。

深入理解Linux问题分析与性能优化(超详细~)深入理解Linux问题分析与性能优化(超详细~)深入理解Linux问题分析与性能优化(超详细~)内存分析思路接着我们来看内存方面。从内存的角度来说,主要的性能指标是系统内存的分配和使用、进程内存的分配和使用以及SWAP的用量。下图列出了常见的内存性能指标。

超能文献 超能文献

超能文献是一款革命性的AI驱动医学文献搜索引擎。

超能文献 14 查看详情 超能文献

深入理解Linux问题分析与性能优化(超详细~)深入理解Linux问题分析与性能优化(超详细~)IO分析思路从文件系统和磁盘I/O的角度来说,主要性能指标是文件系统的使用、缓存和缓冲区的使用,以及磁盘I/O的使用率、吞吐量和延迟等。下图列出了常见的I/O性能指标。

深入理解Linux问题分析与性能优化(超详细~)深入理解Linux问题分析与性能优化(超详细~)网络分析思路从网络的角度来说,主要性能指标是吞吐量、响应时间、连接数、丢包数等。根据TCP/IP网络协议栈的原理,我们可以把这些性能指标进一步细化为每层协议的具体指标。下图分别从链路层、网络层、传输层和应用层,列出了各层的主要指标。

深入理解Linux问题分析与性能优化(超详细~)深入理解Linux问题分析与性能优化(超详细~)深入理解Linux问题分析与性能优化(超详细~)基准测试工具除了性能分析外,我们还需要对系统性能进行基准测试。例如,

在文件系统和磁盘I/O模块中,我们使用fio工具,测试磁盘I/O的性能。

在网络模块中,我们使用iperf、pktgen等工具,测试网络的性能。

在很多基于Nginx的案例中,我们使用ab、wrk等工具,测试Nginx应用的性能。

深入理解Linux问题分析与性能优化(超详细~)2022年嵌入式开发想进互联网大厂,你的技术过硬吗?

从事十年嵌入式转内核开发(23K到45K),给兄弟们的一些建议

腾讯T6-9首发“Linux内核源码嵌入式开发进阶笔记”,差距不止一点点哦

以上就是深入理解Linux问题分析与性能优化(超详细~)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/483523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 12:27:15
下一篇 2025年11月8日 12:28:22

相关推荐

  • HTML 和 CSS 中的“联系我们”页面

    开发者您好!在本教程中,我将向您展示如何使用 html 和 css 创建现代的联系我们页面。联系我们表单是指网页表单的一部分,用户可以在其中向指定人员或网站管理员发送消息。 主要特点 响应式设计:布局灵活,适合移动和平板设备。现代 UI 元素:其中添加了图标、阴影和按钮悬停效果。 此联系表格完全响应…

    2025年12月24日
    100
  • HTML、CSS 和 JavaScript 中的简单侧边栏菜单

    构建一个简单的侧边栏菜单是一个很好的主意,它可以为您的网站添加有价值的功能和令人惊叹的外观。 侧边栏菜单对于客户找到不同项目的方式很有用,而不会让他们觉得自己有太多选择,从而创造了简单性和秩序。 今天,我将分享一个简单的 HTML、CSS 和 JavaScript 源代码来创建一个简单的侧边栏菜单。…

    2025年12月24日
    200
  • 带有 HTML、CSS 和 JavaScript 工具提示的响应式侧边导航栏

    响应式侧边导航栏不仅有助于改善网站的导航,还可以解决整齐放置链接的问题,从而增强用户体验。通过使用工具提示,可以让用户了解每个链接的功能,包括设计紧凑的情况。 在本教程中,我将解释使用 html、css、javascript 创建带有工具提示的响应式侧栏导航的完整代码。 对于那些一直想要一个干净、简…

    2025年12月24日
    000
  • 如何在 VS Code 中解决折叠代码复制问题?

    解决 VS Code 折叠代码复制问题 在 VS Code 中使用折叠功能可以帮助组织长代码,但使用复制功能时,可能会遇到只复制可见部分的问题。以下是如何解决此问题: 当代码被折叠时,可以使用以下简单操作复制整个折叠代码: 按下 Ctrl + C (Windows/Linux) 或 Cmd + C …

    2025年12月24日
    000
  • 姜戈顺风

    本教程演示如何在新项目中从头开始配置 django 和 tailwindcss。 django 设置 创建一个名为 .venv 的新虚拟环境。 # windows$ python -m venv .venv$ .venvscriptsactivate.ps1(.venv) $# macos/linu…

    2025年12月24日
    000
  • css怎么设置超出显示省略号

    css设置超出显示省略号的方法:1、使用“overflow:hidden;”语句把超出的部分隐藏起来;2、使用“text-overflow:ellipsis;”语句在文本溢出包含元素时,显示省略符号来代表被隐藏的部分。 本教程操作环境:windows7系统、CSS3&&HTML5版、…

    2025年12月24日
    000
  • nginx的css不起作用怎么办

    nginx的css不起作用是因为误删文件导致的,其解决办法就是打开相应的文件并添加代码“include /etc/nginx/mime.types;”,然后重启Nginx守护即可。 本文操作环境:windows7系统、css3版,DELL G3电脑。 nginx的css不起作用是什么原因? 最近部署…

    2025年12月24日 好文分享
    000
  • CSS语言入门视频教程推荐

    html和css是组成web前端开发最核心的部分。在网页制作时使用css,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。那么css语言入门?如何学习?今天创想鸟在这里给大家推荐8个css免费经典视频教程供大家学习,希望对大家有所帮助。 1、《CSS视频教程-玉女心经版》 ht…

    2025年12月24日 好文分享
    000
  • CSS如何实现任意角度的扇形(代码示例)

    本篇文章给大家带来的内容是关于CSS如何实现任意角度的扇形(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 扇形制作原理,底部一个纯色原形,里面2个相同颜色的半圆,可以是白色,内部半圆按一定角度变化,就可以产生出扇形效果 扇形绘制 .shanxing{ position:…

    2025年12月24日
    000
  • CSS新手整理的有关CSS使用技巧

    [导读]  1、不要使用过小的图片做背景平铺。这就是为何很多人都不用 1px 的原因,这才知晓。宽高 1px 的图片平铺出一个宽高 200px 的区域,需要 200*200=40, 000 次,占用资源。  2、无边框。推荐的写法是     1、不要使用过小的图片做背景平铺。这就是为何很多人都不用 …

    好文分享 2025年12月23日
    000
  • CSS中实现图片垂直居中方法详解

    [导读] 在曾经的 淘宝ued 招聘 中有这样一道题目:“使用纯css实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。”当然出题并不是随意,而是有其现实的原因,垂直居中是 淘宝 工作中最 在曾经的 淘宝UED 招聘 中有这样一道题目: “使用纯CSS实现未知尺寸…

    好文分享 2025年12月23日
    000
  • CSS派生选择器

    [导读] 派生选择器通过依据元素在其位置的上下文关系来定义样式,你可以使标记更加简洁。在 css1 中,通过这种方式来应用规则的选择器被称为上下文选择器 (contextual selectors),这是由于它们依赖于上下文关系来应 派生选择器 通过依据元素在其位置的上下文关系来定义样式,你可以使标…

    好文分享 2025年12月23日
    000
  • CSS 基础语法

    [导读] css 语法 css 规则由两个主要的部分构成:选择器,以及一条或多条声明。selector {declaration1; declaration2;     declarationn }选择器通常是您需要改变样式的 html 元素。每条声明由一个属性和一个 CSS 语法 CSS 规则由两…

    2025年12月23日
    300
  • CSS 高级语法

    [导读] 选择器的分组你可以对选择器进行分组,这样,被分组的选择器就可以分享相同的声明。用逗号将需要分组的选择器分开。在下面的例子中,我们对所有的标题元素进行了分组。所有的标题元素都是绿色的。h1,h2,h3,h4,h5 选择器的分组 你可以对选择器进行分组,这样,被分组的选择器就可以分享相同的声明…

    好文分享 2025年12月23日
    000
  • CSS id 选择器

    [导读] id 选择器id 选择器可以为标有特定 id 的 html 元素指定特定的样式。id 选择器以 ” ” 来定义。下面的两个 id 选择器,第一个可以定义元素的颜色为红色,第二个定义元素的颜色为绿色: red {color:re id 选择器 id 选择器可以为标有特…

    好文分享 2025年12月23日
    000
  • 有关css的绝对定位

    [导读] 定位(左边和顶部) css定位属性将是网虫们打开幸福之门的钥匙: h4 { position: absolute; left: 100px; top: 43px }这项css规则让浏览器将 的起始位置精 确地定在距离浏览器左边100象素,距离其 定位(左边和顶部) css定位属性将是网虫们…

    好文分享 2025年12月23日
    000
  • 响应式HTML5按钮适配不同屏幕方法【方法】

    实现响应式HTML5按钮需五种方法:一、CSS媒体查询按max-width断点调整样式;二、用rem/vw等相对单位替代px;三、Flexbox控制容器与按钮伸缩;四、CSS变量配合requestAnimationFrame优化的JS动态适配;五、Tailwind等框架的响应式工具类。 如果您希望H…

    2025年12月23日
    000
  • 如何查看编写的html_查看自己编写的HTML文件效果【效果】

    要查看HTML文件的浏览器渲染效果,需确保文件以.html为扩展名保存、用浏览器直接打开、利用开发者工具调试、必要时启用本地HTTP服务器、或使用编辑器实时预览插件。 如果您编写了HTML代码,但无法直观看到其在浏览器中的实际渲染效果,则可能是由于文件未正确保存、未使用浏览器打开或文件扩展名设置错误…

    2025年12月23日
    400
  • html5怎么设置单选_html5用input type=”radio”加name设单选按钮组【设置】

    HTML5 使用 type=”radio” 实现单选功能,需统一 name 值构成互斥组;通过 checked 设默认项;可用 CSS 隐藏原生控件并自定义样式;推荐用 fieldset/legend 增强语义;required 可实现必填验证。 如果您希望在网页中创建一组互…

    2025年12月23日
    200
  • node.js怎么运行html_node.js运行html步骤【指南】

    答案是使用Node.js内置http模块、Express框架或第三方工具serve可快速搭建服务器预览HTML文件。首先通过http模块创建服务器并读取index.html返回响应;其次用Express初始化项目并配置静态文件服务;最后利用serve工具全局安装后一键启动服务器,三种方式均在浏览器访…

    2025年12月23日
    300

发表回复

登录后才能评论
关注微信