[转帖] CPU性能优化基本篇:一定要了解Linux CPU哪些基本概念

 

 
laziobird
 

目录

第一篇:CPU性能优化基础篇:一定要了解Linux CPU哪些基本概念 
第二篇:CPU 优化高级篇:Linux系统中CPU占用率较高问题排查思路与解决方法
第三篇:CPU 优化高级篇:Java  CPU 高的原因和排查方法  :如何定位Java  消耗CPU最多的线程
第四篇:CPU 优化高级篇:Java  CPU 高的原因和排查方法  :学会Java死锁和CPU 100% 问题的排查技巧
第五篇:CPU 优化线上实战篇:Java 生产环境 CPU 跑满 & 大量长耗时的问题排查 & 解决
第六篇:CPU 优化线上实战篇:Java   JVM  频繁 GC的原因和排查方法

导语

实际项目中,我们常常遇到一些CPU高的问题,本次专题由浅入深,从基本概念到线上实践,带着大家重新系统学习一些Linux CPU,Java CPU调优 基本知识和方法。本文适合对象

  • 中高级Java工程师:重温Linux CPU常见的基本概念,比如Load。学习线上CPU优化和排查思路
  • 架构师:线上CPU优化和排查案例分享

 

正文

进入正题:

典型的救火场景
 
Java进程CPU使用率很高
Jstack、Btrace、Arthas分析堆栈
 
Mysqld进程CPU使用率很高
show full processlist 分析慢查询,看连接数和QPS等
 
面向底层基础软件系统的开发者
直接定位函数代码,perf(文本) + flamegraph(火焰图)
 

常见的疑问

load值多少算高呢?
load值超过CPU核数都代表CPU繁忙负载比较重了,也要看趋势
 
上下文切换多少算高? 这个取决于CPU自身的性能。几百到几千都正常,暴增那种就需要警惕
什么会导致过多的上下文切换?运行队列多少算正常?
 
过多的进程/线程、中断、系统调用等。每个CPU core不超过3个线程 Java应用CPU使用率很高通常是什么原因?
死循环、数据结构与算法(复杂度高)、复杂的正则匹配、 频繁GC(us高)、锁竞争激烈(sy高)、线程主动切换频繁等
 

小结

平均负载高,可能是CPU密集型应用进程导致 平均负载高并不代表CPU使用率高,也有可能I/O繁忙 通常,I/O密集型应用可能导致平均负载高但是CPU使用率不高 iowait高可能导致load高 ,可能存在频繁写入或I/O瓶颈,结合iostat分析 内核态CPU高,应该优先排查内核线程和系统调用情况(strace) 计算密集型场景CPU us/sy比至少90/10,I/O密集型约70/30(仅供参考) CPU缓存命中率也很重要,可以通过perf stat -e 看到 USE方法:使用率(繁忙情况)、饱和度(可运行队列等待CPU)、错误 调优:静态/动态优先级、调度器、进程CPU亲和性绑定、编译器优化 …

 

大家有什么想了解和疑问,欢迎下面给我留言。谢谢!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

异步编程

导入模块:导入asyncio库,这是Python的异步编程库。导入time模块,用于获取当前时间。定义异步函数:say_after是一个异步函数,它接受两个参数:delay(等待的时间)和what(要打印的消息)。函数内部使用await asyncio.sleep(delay)来等待指定的延迟时间。函数返回一个格式化…

OWA top 10 简介

owa top 10 OWASP Top10是什么? OWASP(开放式Web应用程序安全项目)是一个开放的社区,由非营利组织 OWASP基金会支持的项目。对所有致力于改进应用程序安全的人士开放,旨在提高对应用程序安全性的认识。 其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结并…

OpenVX便携式、高能效的视觉处理

OpenVX便携式、高能效的视觉处理 OpenVX 1.3.1 来了! OpenVX 1.3.1 规范于 2022 年 2 月 2 日发布OpenVX™ 是一种开放、免版税的标准,用于计算机视觉应用程序的跨平台加速。OpenVX 支持性能和功耗优化的计算机视觉处理,这在嵌入式和实时用例中尤为重要,例如面部、身体和手…

分片集群组件

MongoDB分片集群由以下组件组成:shard:每个分片包含分片数据的子集。每个分片必须部署为副本集。mongos:mongos充当查询路由器,提供客户端应用程序和分片集群之间的接口。mongos可以支持 对冲读取以最小化延迟。config servers:配置服务器存储集群的元数据和配置设置。从 …

解决Windows远程桌面连接Windows时“终端服务器超出了最大允许连接数”

解决Windows远程桌面连接Windows时“终端服务器超出了最大允许连接数”1. 问题分析 在Windows Server中,远程桌面服务的默认连接数限制为2个。当用户通过远程桌面登录并直接关闭窗口时,实际上连接并未被释放,而是保持在服务器端,导致连接数累积。当连接数达到最大值时,用户…

06--加密逻辑

各种加密逻辑 在进行js逆向的时候,总会遇见一些人类无法直接能理解的东西出现。此时你看到的大多数,是被加密过的密文。 一. 一切从MD5开始 MD5是一个非常常见的摘要(hash)逻辑。其特点就是小巧、速度快、极难被破解(王小云女士) 所以md5,依然是国内非常多的互联网公司,选择…

05--抓包工具、PyExecjs模块

抓包工具、PyExeJs模块 在处理一些网站的时候,会遇到一些屏蔽F12,以及只要按出浏览器的开发者工具,就会关闭甚至死机的现象 在遇到这类网站的时候,可以使用抓包工具,把页面上屏蔽开发者工具的代码给干掉 一. Fiddler和Charles 这两款工具是非常优秀的抓包工具。它们可以监…

5.21

ppt:1 代码:0 一个数据分析的ppt看一下吧:

西安游记 6.16 12.26 5.18

西安游记(三合一版) 前言 一年里到西安去了三次,没想到能和西安这么有缘分。 初遇 第一次去西安是刚刚高考完不久,之前没有怎么出去玩过,更别提没有家长的陪同去一个陌生的城市去旅游了。但其实在高考前就一直有一个愿望,就是可以和同学一起去一个其他的城市逛一逛,当时…

会计科目大白话解释

配合图片,更好理解~

深度学习-语音识别-音频处理--77

目录1. 概述2. 采样率3. 振幅数值的量化-分贝db4. 预处理--预加重5. 分帧6. 加窗7. 离散快速傅里叶变换8. 梅尔滤波器组9 倒谱分析10, 离散余弦变换11 MFCC12 倒谱均值减 1. 概述 语音产业的上一次爆发出现在20世纪80年代到90年代:隐马尔科夫模型的应用,使大规模连续语音识别…

智能指针用法学习

转自:https://blog.csdn.net/cpp_learner/article/details/118912592,chatgpt 1.介绍 智能指针就是帮管理动态分配的内存的,它会帮助我们自动释放new出来的内存,从而避免内存泄漏!使用智能指针可以自动调用对象的析构函数。例子:class Test { public:Test() { cout <&…