第二季:9.生产环境服务器变慢,诊断思路和性能评估谈谈? 【Java面试题】

  • 前言
  • 推荐
  • 9.生产环境服务器变慢,诊断思路和性能评估谈谈?
  • Linux诊断原因
    • 命令集合
      • 整机:top,查看整机系统新能
      • CPU:vmstat
      • 内存:free
      • 硬盘:df
      • 网络IO:ifstat
  • 最后

【Java面试题】)

前言


2022 10/13 18:47

路漫漫其修远兮,吾将上下而求索


本文是根据尚硅谷学习所做笔记

仅供学习交流使用,转载注明出处


推荐

尚硅谷Java大厂面试题第2季,面试必刷,跳槽大厂神器

第二季大佬总结

9.生产环境服务器变慢,诊断思路和性能评估谈谈?

Linux诊断原因

命令集合

整机:top,查看整机系统新能

使用top命令的话,重点关注的是 %CPU、%MEM 、load average 三个指标

  • load average三个指标:分别代表1、5、15分钟的负载情况
    在这个命令下,按1的话,可以看到每个CPU的占用情况

uptime:系统性能命令的精简版

CPU:vmstat

  • 查看CPU(包含但是不限于)
  • 查看额外
    • 查看所有CPU核信息:mpstat -p ALL 2
    • 每个进程使用CPU的用量分解信息:pidstat -u 1 -p 进程编号

命令格式:vmstat -n 2 3

一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是残阳的时间间隔数(单位秒),第二个参数是采样的次数

procs

​ r:运行和等待的CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不超过总核数的2倍,否则代表系统压力过大,我们看蘑菇博客测试服务器,能发现都超过了2,说明现在压力过大

​ b:等待资源的进程数,比如正在等待磁盘I/O、网络I/O等

cpu

​ us:用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于50%,优化程序

​ sy:内核进程消耗的CPU时间百分比

​ us + sy 参考值为80%,如果us + sy 大于80%,说明可能存在CPU不足,从上面的图片可以看出,us + sy还没有超过百分80,因此说明蘑菇博客的CPU消耗不是很高

​ id:处于空闲的CPU百分比

​ wa:系统等待IO的CPU时间百分比

​ st:来自于一个虚拟机偷取的CPU时间比

内存:free

  • 应用程序可用内存数:free -m
  • 应用程序可用内存/系统物理内存 > 70% 内存充足
  • 应用程序可用内存/系统物理内存 < 20% 内存不足,需要增加内存
  • 20% < 应用程序可用内存/系统物理内存 < 70%,表示内存基本够用

free -h:以人类能看懂的方式查看物理内存

free -m:以MB为单位,查看物理内存

free -g:以GB为单位,查看物理内存

硬盘:df

格式:df -h / (-h:human,表示以人类能看到的方式换算)

  • 硬盘IO:iostat
    系统慢有两种原因引起的,一个是CPU高,一个是大量IO操作

格式:iostat -xdk 2 3

磁盘块设备分布:

rkB /s:每秒读取数据量kB;

wkB/s:每秒写入数据量kB;

svctm I/O:请求的平均服务时间,单位毫秒

await I/O:请求的平均等待时间,单位毫秒,值越小,性能越好

util:一秒钟有百分几的时间用于I/O操作。接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘;

rkB/s,wkB/s根据系统应用不同会有不同的值,但有规律遵循:长期、超大数据读写,肯定不正常,需要优化程序读取。

svctm的值与await的值很接近,表示几乎没有I/O等待,磁盘性能好,如果await的值远高于svctm的值,则表示I/O队列等待太长,需要优化程序或更换更快磁盘

网络IO:ifstat

  • 默认本地没有,下载ifstat

生产环境服务器变慢,诊断思路和性能评估
记一次印象深刻的故障?

结合Linux 和 JDK命令一起分析,步骤如下

  • 使用top命令找出CPU占比最高的
  • ps -ef 或者 jps 进一步定位,得知是一个怎么样的后台程序出的问题
  • 定位到具体线程或者代码
    • ps -mp 进程 -o THREAD,tid,time
    • 参数解释
      • -m:显示所有的线程
      • -p:pid进程使用CPU的时间
      • -o:该参数后是用户自定义格式

  • 将需要的线程ID转换为16进制格式(英文小写格式)

    • printf “%x\n” 有问题的线程ID
  • jstack 进程ID | grep tid(16进制线程ID小写英文) -A60

精准定位到错误的地方

最后


2022 10


p105~p111


Markdown 2717 字数 176 行数
HTML 1801 字数 79 段落


第二季:9.生产环境服务器变慢,诊断思路和性能评估谈谈?【Java面试题】相关推荐

  1. idea占用cpu过高_生产环境服务器变慢、CPU占用过高,诊断思路和性能评估谈谈?...

    上篇: https://zhuanlan.zhihu.com/p/166162037​zhuanlan.zhihu.com 一.生产环境服务器变慢,诊断思路和性能评估 1.在Linxu准备数据 (1) ...

  2. 升级生产环境服务器 网卡驱动,解决断线无法重连问题

    最近发现公司线上生产环境服务器外网网线插拔无法重连:即拔掉外网网线,之后再插上后,该台服务器外网Iping不通,只能通过内网重启NetworkManager以及重启network才能ping通外网IP ...

  3. 生产环境服务器安全策略与系统性能优化评估

    生产环境服务器安全策略与系统性能优化评估 1. Linux的运维经验分享与故障排查思路 1.1 线上服务器安装基本策略和经验 精简安装策略: 仅安装需要的,按需安装,不用不装 开发包,基本网络包,基本 ...

  4. java hotspot 默认垃圾回收器_怎么查看服务器默认的垃圾的收集器是哪个?生产环境上如何配置垃圾回收收集器?谈谈你对垃圾收集器的理解?...

    上篇:https://zhuanlan.zhihu.com/p/165998261​zhuanlan.zhihu.com 一.查看默认的垃圾收集器 1.如何查看默认的垃圾收集器 (1)代码演示: pa ...

  5. 后台服务出现明显“变慢”诊断思路

    一.首先,需要对这个问题进行更加清晰的定义: (1).服务是突然变慢还是长时间运行后观察到变慢?类似问题是否重复出现? (2)."慢"的定义是什么,我能够理解是系统对其他方面的请求 ...

  6. 对服务器系统性能的诊断思路和方法,服务器端软件性能分析和诊断方法研究

    摘要: 随着Internet的迅速发展,基于Web的应用越来越深入人们的工作和生活,许多传统的信息系统被移植到互联网上,电子商务等新的应用模式也在不断涌现,Web正以其广泛性.交互性.快捷性和易用性等 ...

  7. Java面试题-JVM 和服务器性能评估

    1.JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots 垃圾指的是内存中不再使用的空间(主要指的就是堆内存),确定垃圾的方法有引用记数法和可达性分析法(但引用计数法存在对象之间循环引用的 ...

  8. 尚硅谷面试第二季(周阳主讲)

    尚硅谷面试第二季 1.volatile关键字 volatile是什么 volatile的作用 1.保证可见性 2.不保证原子性 3.禁止指令重排 DCL(单例模式双重锁) JMM模型 JMM是什么 J ...

  9. 生产环境不同问题定位及分析

    在实际的程序运行中,有很多问题只有在线上或者预发布环境才会出现,而线上又不能调试代码,所以线上问题定位只能看日志,系统状态和dump线程. 一. 生产环境服务器变慢,诊断思路和性能评估 系统日志:/v ...

最新文章

  1. java getrecord_Java TCType.getRecord方法代码示例
  2. 【Excel】Excel根据单元格背景色求和
  3. boost::gil::view_type_from_pixel用法的测试程序
  4. VMware Ubuntu 全屏问题解决
  5. java 设计模式原则_Java设计模式的七大原则
  6. Java Formatter locale()方法与示例
  7. DB-Engines 9月数据库排名:ClickHouse一路猛冲,Redis坐稳第7
  8. 李猛:从MongoDB迁移到ES后,我们减少了80%的服务器
  9. Linux下MySQL5.6的修改字符集编码为UTF8
  10. JavaScript——创建运动框架
  11. 结队编程之——阅读分析队友的代码(C++自动生成数学试卷)
  12. 截图软件与网络的完美结合---Jingproject(Z)
  13. 央视《家有妙招》整理版,值得永远收藏!
  14. 成功解决Collecting package metadata (current_repodata.json): failedCondaHTTPError: HTTP 000 CONNECTION
  15. oracle报1653解决办法,“IMP-00058: 遇到 ORACLE 错误 1653”,如何解决?
  16. 【BZOJ3162】独钓寒江雪 树同构+DP
  17. 2019年全国高校计算机能力挑战赛C++组题解
  18. 超级计算机排名太湖之光,神威•太湖之光继续“称霸”超级计算机排行榜 美国无缘前三...
  19. FFmpeg命令(七)、 音频与视频合并成视频
  20. 速记混淆矩阵中的FP、FN、FP、TN

热门文章

  1. 创业公司如何做好信息安全(下)
  2. 愉快的学习就从翻译开始吧_0-Time Series Forecasting with the Long Short-Term Memory Network in Python
  3. 计算机课还无聊吗,《快乐星球Ⅴ》电脑课还可以这样?
  4. 设某种二叉树有如下特点:每个结点要么是叶子结点,要么有2棵子树。假如一棵这样的二叉树中有m(m0)个叶子结点,那么该二叉树上的结点总数为( )。
  5. Java 调用Google Map Api解析地址,解析经纬度实例
  6. 基于51单片机十字路口交通灯_5s黄灯闪烁
  7. D-Link DP-LINK302打印服务器WIN7版软件
  8. Python爬虫 | 爬取贝壳找房8万+二手房源,看看普通人在北京买房是有多难!
  9. python3 题解(20)-五位数黑圈
  10. html文档中strokestyle,HTML5简明教程-1.1.2.HTML5Canvas参考手册 之 笔触strokeStyle