Linux诊断原因:生产环境服务器变慢,诊断思路和性能评估

news2024/11/15 15:45:36

Linux诊断原因,生产环境服务器变慢,诊断思路和性能评估

1 整机:top,查看整机系统性能

image-20200326162329550

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

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

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

2 CPU:vmstat

查看CPU(包含但是不限于): vmstat

image-20230507141404651

命令格式:

vmstat -n 2 3 

​ 一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数(如上面的参数2)是采样的时间间隔数(单位秒),第二个参数(如上面的参数3)是采样的次数。我们可以将每次采样求平均值进行判断。

参数解析:

procs

​ r:运行和等待的CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不超过总核数的2倍,否则代表系统压力过大。

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

cpu

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

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

image-20200326164521263

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

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

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

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

查看所有CPU核信息

命令:

mpstat -P ALL 2

image-20210821235519605

查看某个进程使用CPU的用量分解信息

命令:

pidstat -p 进程编号 -u 采样间隔秒数

pidstat 命令详解: https://www.jianshu.com/p/3991c0dba094

需求:查看某个java进程的cpu的使用情况

步骤:
1、使用ps -ef | grep java 找出相关进程号
2、使用 pidstat -p 进程编号 -u 采样间隔秒数 查看信息

image-20210822000531753

3 内存:free

  • 应用程序可用内存数:free -m

  • 应用程序可用内存/系统物理内存 > 70% 内存充足

  • 应用程序可用内存/系统物理内存 < 20% 内存不足,需要增加内存

  • 20% < 应用程序可用内存/系统物理内存 < 70%,表示内存基本够用

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

image-20230507142057233

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

image-20230507142146722

free -g:以GB为单位,查看物理内存,会没那么精确

image-20230507142216465

4 查看某个进程使用内存的用量分解信息

pidstat -p 进程号 -r 采样间隔秒数

查看某个java进程的内存使用情况

步骤:
1、查看进程号: ps -ef | grep java
2、根据进程号查看这个进程的内存使用情况:pidstat -p 进程号 -r 采样间隔秒数

image-20210822180822114

5 硬盘:df

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

image-20200326170318733

硬盘IO:iostat

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

格式:iostat -xdk 2 3

说明 2 表示两秒钟取样一次,共计取样3次

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JLNlUqe1-1683440811490)(null)]

磁盘块设备分布:

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队列等待太长,需要优化程序或更换更快磁盘

查看某个进程使用内存的用量分解信息

pidstat -p 进程号 -d 采样间隔秒数

image-20210822184849138

6 网络IO:ifstat

  • 默认本地没有,下载ifstat

image-20200326171559406

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年NOC大赛编程马拉松赛道初赛图形化低年级A卷-正式卷,包含答案

目录 选择题: 下载文档打印做题: 2022年NOC大赛编程马拉松赛道【初赛】图形化低年级A卷-正式卷 2022NOC-图形化初赛低年级A卷正式卷 选择题: 1、答案:B 禾木是一个军事迷,他打算利用业余时间制作一款射击游戏。在游戏中,玩家可以通过鼠标控制手枪移动。请问,给手枪…

springboot+vue体质测试数据分析及可视化设计(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的体质测试数据分析及可视化设计。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&a…

[svg-icon]引入vue项目后,use标签为0,已解决

这个bug我之前遇到过一次&#xff0c;解决了也就没记录 但是好记性不如烂笔头&#xff0c;这次重新遇到&#xff0c;又重新排查bug花了1个多小时 svg引入vue项目&#xff0c;需要依赖svg-sprite-loader npm install svg-sprite-loader在vue.config.js中 chainWebpack(conf…

NOC大赛·核桃编程马拉松赛道知识点大纲(高年级及初中组)

NOC核桃编程马拉松知识点大纲(高年级及初中组) (一)基础语法 1.掌握运动积木的用法。 包括“移动 10 步”、“左/右转 X 度”、“面向 X 方向/鼠标指针/ 角色”、“移到 XY 坐标/鼠标/角色”、“X/Y 坐标的设定和增加”、 “滑行到 XY/鼠标/角色”等积木用法,详细如下。 1…

【数据结构】链表OJ:力扣160. 相交链表

最近这几篇内容都有关链表&#xff0c;接下来几篇内容会分享一些链表的OJ题&#xff0c;希望对你有所帮助。 今天要分享的内容是力扣160. 相交链表&#xff1a;160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 目录 题目&#xff1a; 题解 题目&#xff1a; 给你…

数据分析02——numpy模块的在jupyter中的使用

0、numpy&#xff1a; 在计算机中会把数学当中的矩阵叫做数组&#xff0c;在很多应用中的表格也就是通过矩阵表示的&#xff0c;所以numpy广泛用于机器学习&#xff0c;数据分析&#xff0c;和图像处理领域。 1、numpy常用方法和函数&#xff1a; 前言&#xff1a;在使用nump…

腾讯云轻量应用服务器使用限制说明(十大限制)

腾讯云轻量应用服务器和云服务器CVM相比具有一些限制&#xff0c;比如轻量服务器不支持更换内网IP地址&#xff0c;轻量服务器只能套餐整体升级且不支持降配&#xff0c;轻量不支持用户自定义配置私有网络VPC&#xff0c;还有如实例配额、云硬盘配额、备案限制和内网连通性等限…

Ububtu20.04 无法连接外屏(显卡驱动问题导致)

Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; Ububtu20.04 无法显示第二个屏幕&#xff08;显卡驱动问题&#xff09; 1. 问题描述2. 解决方案 1. 问题描述 一开始我的ububt…

JavaGuide复习1——常见面试题总结部分

1、关于包装类的缓存机制 两种浮点数类型的包装类 Float,Double 并没有实现缓存机制。 对应源码&#xff1a; 拆装箱 都是调用了包装类的方法&#xff1a;valueOf&#xff08;基本转包装&#xff09;、xxxValue&#xff08;包装转基本&#xff09; 注意char char在Java中占用…

Illustrator如何进行文本的创建与编辑之实例演示?

文章目录 0.引言1.创建点文字2.串接文本3.石刻文字 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对Illustrator进行了学习&#xff0c;本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结&#xff0c;本文对文本的创建与编辑进…

shell脚本编程基础

shell 文件的建立和执行 shell脚本是将shell命令在文件中编写&#xff0c;从而实现一次执行很多shell命令。如&#xff1a; # ab.sh # !/bin/bash echo "Welcome Linux" cd mkdir myjsjsj echo "Your dir is" pwd可以看到这就是多个shell命令。 执行前需…

【数据结构】选择排序(详细)

选择排序 1. 直接选择排序2. 堆排序2.1 堆2.2 堆的实现&#xff08;以大根堆为例&#xff09;2.3 堆排序 3. 堆排序&#xff08;topK问题&#xff09; 1. 直接选择排序 思想 以排升序为例。以a[i]为最大值&#xff08;或最小值&#xff09;&#xff0c;从a[i1]到a[n-1-i]比较选…

【5G RRC】NR 小区接入控制

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

Wind10安装cuDNN,几分钟搞定

cuDNN的安装过程 1、下载cuDNN 因为之前的博文“目标检测第3步”下载的CUDA版本是11.1&#xff0c;那么我们就要找到与CUDA11.1版本对应的cuDNN版本。地址为&#xff1a;cuDNN Archive | NVIDIA Developer 2、安装cuDNN 下载到的cuDNN文件是一个压缩包&#xff0c;解压缩之后…

并发编程03:Java锁

文章目录 3.1 乐观锁和悲观锁3.2 通过8种情况演示锁运行案例&#xff0c;看看锁到底是什么3.2.1 锁相关的8种案例演示code3.2.2 synchronized有三种应用方式3.2.3 从字节码角度分析synchronized实现3.2.4 反编译synchronized锁的是什么3.2.5 对于Synchronized关键字 3.3 公平锁…

创维高安版-E900-Hi3798MV100-强刷卡刷固件包-当贝纯净桌面

创维高安版-E900-Hi3798MV100-强刷卡刷固件包-当贝纯净桌面-内有主板图短接点和教程 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置…

关于百度地图开放平台api覆盖物“自定义Marker图标”不能正常显示的解决方案

“自定义Marker图标”不能正常显示&#xff08;用网上图片能正常显示&#xff0c;用本地图片就不能显示&#xff09;&#xff0c; 分两种情况&#xff1a; 1.网上图片&#xff0c;往往是图片的url地址有问题&#xff0c;也可能是url地址的图片失效了。 2.本地图片&#xff0c;这…

linux软件包管理和进程管理

目录标题 RPM管理工具rpm安装rpm查询功能rpm软件包升级、卸载 YUM管理工具建立本地光盘源配置互联网源yum工具管理软件包 ps指令动态查看进程top RPM管理工具 软件包&#xff08;本地–网络&#xff09;—安装&#xff08;软件包&#xff09;—卸载&#xff08;软件&#xff0…

【Python】【进阶篇】24、Django if标签详解

目录 24、Django if标签详解1. 模板标签1) 判断逻辑的 if 标签 24、Django if标签详解 本节继续讲解 Django 的模板语言&#xff0c;Django 内置了许多标签用于简化模板的开发过程&#xff0c;同时 Django 也支持自定义标签&#xff0c;这极大的方便了 Web开发者&#xff0c;下…

拓展系统变量

文章目录 拓展系统变量 使用方式拓展系统变量获取服务端IP - $ZSERVERIP获取客户端IP - $ZCLIENTIP获取最大许可数量 - $ZMAXLICENSE获取当前系统名称 - $ZOSNAME获取字符串最大长度 - $ZMAXSTRINGLEN获取当前登录用户ID - $ZUSERID获取当前登录用户名 - $ZUSERNAME系统最近错误…