性能优化
CN_SHzhaoyujie
吾尝自悯,以为戚戚然。夫世人之志所求,欲满其心之名利。或谓曰“:夫存世之道,得名而追利,欲满而不达,增此往复,虽有名利而心不足也。”吾所念者,世人非所愿也。何也,逍遥无所求也。
展开
-
十三、如何学习性能优化
性能指标是什么?12高并发 === 吞吐响应快 === 延时性能问题的本质,就是系统资源已经达到瓶颈,但请求的处理却还不够快,无法支撑更多的请求找出应用或系统的瓶颈,并设法去避免或者缓解它们,包含了一系列的步骤,比如下面的6个步骤:1234561. 选择指标评估应用程序和系统的性能;2. 为应用程序和系统设置性能目标;3. 进行性能基准测试...原创 2020-09-21 08:03:00 · 167 阅读 · 0 评论 -
十一、CPU性能优化的几个思路
性能优化方法论常见问题判断优化是否有效?预期优化后性能提升多少?怎么考虑优化时的优先级如何评估选择方案怎么评估性能优化的效果?确定性能的量化指标。测试优化前的性能指标。测试优化后的性能指标。以 Web 应用为例:应用程序的维度,我们可以用吞吐量和请求延迟来评估应用程序的性能。系统资源的维度,我们可以用 CPU 使用率来评估系统的 CP...原创 2020-09-21 08:03:00 · 373 阅读 · 0 评论 -
十二、关于CPU性能优化过程遇到的问题总结
问题1 : 性能工具版本太低,导致指标不全某些版本的pidstat没有%wait,这是因为%wait时sysstat 11.5.5版本才引入的新指标,这时候如果无法安装新版本等情况下,可以查看/proc目录下文件中的指标,这是性能工具上能看到的各项性能指标的原始数据来源问题2 : 使用 stress 命令,无法模拟 iowait 高的场景使用 stress 无法模...原创 2020-09-21 08:03:00 · 406 阅读 · 0 评论 -
九、系统的软中断导致CPU使用率升高,我该怎么办?
案例运行环境机器配置:2 CPU、8 GB 内存。预先安装 docker、sysstat、sar 、hping3、tcpdump 等工具,比如 apt-get install docker.io sysstat hping3 tcpdump。新工具sar、 hping3 和 tcpdump:sar 是一个系统活动报告工具,既可以实时查看系统的当前活动,又可以配置...原创 2020-09-21 08:03:00 · 428 阅读 · 0 评论 -
八、怎么理解Linux软中断?
关于中断中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行Linux 将中断处理过程分成了两个阶段,也就是上半部和下半部上半部用来快速处理中断,它在中断禁止模式下运行,主要处理跟硬件紧密相关的或时间敏感的工作。半部用来延迟处理上半部未完成的工作,通常以内核线程的方式运行。...原创 2020-09-21 08:03:00 · 154 阅读 · 0 评论 -
十、如何使用perf工具分析java程序
问题 1: 使用 perf 工具时,看到的是 16 进制地址而不是函数名在 CentOS 系统中,使用 perf 工具看不到函数名,只能看到一些 16 进制格式的函数地址# 只要你观察一下 perf 界面最下面的那一行,就会发现一个警告信息:Failed to open /opt/bitnami/php/lib/php/extensions/opcache.s...原创 2020-09-21 08:03:00 · 1748 阅读 · 1 评论 -
十四、如何迅速分析出系统CPU的瓶颈在哪里?
CPU性能总结性能工具指标工具工具指标分析CPU性能 赏 ...原创 2020-09-21 08:03:00 · 164 阅读 · 0 评论 -
七. 系统中出现大量不可中断进程和僵尸进程怎么办?
什么是僵尸进程产生的原因子进程执行太快,父进程还没来得及处理子进程状态,子进程就已经提前退出,那这时的子进程就会变成僵尸进程导致的问题父进程如果没有处理子进程的终止,还一直保持运行状态,那么子进程就会一直处于僵尸状态。大量的僵尸进程会用尽 PID 进程号,导致新进程不能创建,所以这种情况一定要避免案例安装环境docker run --privileged --name=app -itd feisky/app:iowait -d /dev/vdb1输入 ps 命令,确认案例应用原创 2020-09-16 10:21:20 · 239 阅读 · 0 评论 -
六. 系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?
文章目录案例背景案例分析准备工作操作和分析总结Tips关于execsnoop案例背景系统的 CPU 使用率,不仅包括进程用户态和内核态的运行,还包括中断处理、等待 I/O 以及内核线程等。所以,当你发现系统的 CPU 使用率很高的时候,不一定能找到相对应的高CPU 使用率的进程。案例分析准备工作1. 本次案例基于 Ubuntu 18.04,同样适用于其他的 Linux 系统1. 机器配置:2 CPU,8GB 内存2. 预先安装 docker、sysstat、perf、ab 等工具,如 apt原创 2020-07-20 07:46:13 · 610 阅读 · 0 评论 -
五. 性能优化之案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?
文章目录案例背景案例分析准备工作操作和分析总结Tips关于execsnoop案例背景系统的 CPU 使用率,不仅包括进程用户态和内核态的运行,还包括中断处理、等待 I/O 以及内核线程等。所以,当你发现系统的 CPU 使用率很高的时候,不一定能找到相对应的高CPU 使用率的进程。案例分析准备工作1. 本次案例基于 Ubuntu 18.04,同样适用于其他的 Linux 系统1. 机器配置:2 CPU,8GB 内存2. 预先安装 docker、sysstat、perf、ab 等工具,如 apt原创 2020-07-01 11:45:59 · 1440 阅读 · 0 评论 -
四. 性能优化之基础篇: 某个应用的CPU使用率居然达到100%,我该怎么办?
文章目录基础概念节拍器HZJiffiesUSER_HZ/proc/statCPU 使用率查看cpu使用率的工具常用工具perfperf top 实时展示perf record 采样后保存到文件 和 perf report 解析展示案例Tips获取docker中运行函数名的方法具体步骤如下:基础概念节拍器HZ节拍器HZ定义每秒钟触发时间中断的次数节拍器HZ为内核的可配选项,可以设置为 100、250、1000等。不同的系统可能设置不同数值可以通过查询/boot/config内核选项来查看它的配原创 2020-06-30 15:03:07 · 821 阅读 · 0 评论 -
三. 性能优化之基础篇: 经常说的 CPU 上下文切换是什么意思?(下)
重要的上下文切换概念自愿上下文切换是指进程无法获取所需资源,导致的上下文切换。比如说, I/O、内存等系统资源不足时,就会发生自愿上下文切换非自愿上下文切换非自愿上下文切换,则是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换。比如说,大量进程都在争抢 CPU 时,就容易发生非自愿上下文切换工具vmstat上下文相关输出解析:cs(context switch)是每秒上下文切换的次数。in(interrupt)则是每秒中断的次数。r(Running or Ru原创 2020-06-30 14:36:24 · 438 阅读 · 0 评论 -
二. 性能优化之基础篇: 经常说的 CPU 上下文切换是什么意思?(上)
文章目录基础概念进程上下文切换系统调用相关的概念触发进程调度的集中情况线程上下文切换线程和进程概念线程切换的不同情况中断上下文切换基础概念CPU 寄存器是 CPU 内置的容量小、但速度极快的内存程序计数器用来存储 CPU正在执行的指令位置、或者即将执行的下一条指令位置CPU 上下文切换通俗理解:将前一个任务的CPU 上下文(也就是 CPU 寄存器和程序计数器)保存起来,加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的新位置,运行新任务进程上下文原创 2020-06-30 14:29:20 · 431 阅读 · 0 评论 -
一. 性能优化之基础篇: 到底应该怎么理解“平均负载”?
一、重要概念平均负载:单位时间内,系统中处于可运行状态和不可中断状态的平均进程数。可运行状态的进程:正在使用cpu或者正在等待cpu的进程,即ps aux命令下STAT处于R状态的进程不可中断状态的进程:处于内核态关键流程中的进程,且不可被打断,如等待硬件设备IO响应,ps命令D状态的进程二、相关命令查看cpu核数: lscpu、 grep 'model name' /proc/cpuinfo | wc -l显示平均负载:uptime、top,显示的顺序是最近1分钟、5分钟、15分钟,从此原创 2020-06-30 14:22:15 · 401 阅读 · 1 评论