java面试-生产环境服务器变慢,谈谈你的诊断思路
1、uptime:查询linux系统负载
11:16:16 系统当前时间
up 64 days, 19:23 从上次启动开始系统运行的时间
3 users 连接数量,同一用户多个连接的时候算多个
load average: 0.22, 0.25, 0.23 1分钟、5分钟、15分钟系统的平均负载值 三值相加/3*100% > 60% 系统负担压力大
2、top:实时显示系统中各个进程的资源占用情况
第2、3行为进程和CPU的信息
第4、5行为内存信息
看CPU、内存
load average(1分钟、5分钟、15分钟系统的平均负载值 三值相加/3*100% > 60% 系统负担压力大)
2、查看CPU:vmstat -n 2 3
procs
r:运行和等待CPU时间片的进程数,整个系统的运行队列不能超过总核数的2倍,否则代表压力很大
b:等待资源的进程数,比如等待磁盘IO,网络IO
CPU
us:用户进程消耗CPU时间百分比
sy:内核进程消耗CPU时间百分比 us+sy>80% 存在CPU不足
查看所有CPU核信息:mpstat -P ALL 2 【idle代表CPU空闲值,越高越好】
每个进程使用CPU的用量分解信息:pidstat -p 进程编号 -u 采用间隔秒数
3、查看内存:free
free/total>70% 内存充足
free/total<20% 内存不足
查看额外:pidstat -p 进程编号 -r 采用间隔秒数
4、查看磁盘剩余空间数:df -h
5、磁盘IO:iostat -xdk 2 3
util 一秒中有百分几的时间用于IO操作 接近100%磁盘带宽跑满,需要优化程序或增加磁盘
查看额外:pidstat -p 进程编号 -d 采用间隔秒数
6、网络IO:ifstat [默认本地没有,需下载]
wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz
tar -zxvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure #默认会安装到/usr/local/bin/目录中
make
make install
说明:安装sysstat命令:yum install sysstat
pidstat参数说明
-u:默认的参数,显示各个进程的cpu使用统计
-r:显示各个进程的内存使用统计
-d:显示各个进程的磁盘IO使用情况
-p:指定进程号
java面试-生产环境服务器变慢,谈谈你的诊断思路的更多相关文章
- 【Java面试】生产环境服务器变慢,如何诊断处理?
"生产环境服务器变慢?如何诊断处理" 这是最近一些工作5年以上的粉丝反馈给我的问题,他们去一线大厂面试,都被问到了这一类的问题. 今天给大家分享一下,面试过程中遇到这个问题,我们应 ...
- Linux性能分析:生产环境服务器变慢,诊断思路和性能评估
Linux性能分析:生产环境服务器变慢,诊断思路和性能评估 一.整机:top 二.CPU:vmstat 所有CPU核信息 每个进程使用CPU的用量分解信息 三.内存:free 四.硬盘:df 五.磁盘 ...
- java面试-生产环境出现CPU占用过高,谈谈你的分析思路和定位
思路:结合Linux和JDK命令一起分析 1.用top命令找出CPU占比最高的进程 2.ps -ef|grep java|grep -v grep 或者jps -l进一步定位,得知是怎样一个后台程序惹 ...
- IBM Thread and Monitor Dump Analyzer for Java解决生产环境中的性能问题
这个工具的使用和 HeapAnalyzer 一样,非常容易,同样提供了详细的 readme 文档,这里也简单举例如下: #/usr/java50/bin/java -Xmx1000m -jar jca ...
- java面试-CountDownLatch、CyclicBarrier、Semaphore谈谈你的理解
一.CountDownLatch 主要用来解决一个线程等待多个线程的场景,计数器不能循环利用 public class CountDownLatchDemo { public static void ...
- 利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境
一.环境描述 安装有ansible的服务器:192.168.13.45 测试环境服务器:192.168.13.49 /home/app/api-tomcat/webapps/api.war为测试环境新 ...
- .NET C#微信公众号开发远程断点调试(本地远程调试生产环境代码)
最近在做微信公众号开发,由于之前没有接触过,突然发现调试不方便,不方便进行断点跟踪调试.因为微信那边绑定的服务器地址必须是公网地址,但是还是想进行断点调试(毕竟这样太方便了,程序有Bug,一步步断点跟 ...
- [转]跳板机Jumpserve的生产环境配置
6.跳板机Jumpserver] Jumpserver是国内一款开源的轻便的跳板机系统,他们的官网:http://www.jumpserver.org/ 使用这款软件意在提高公司内部登录生产环境服 ...
- Rails的静态资源管理(四)—— 生产环境的 Asset Pipeline
官方文档:http://guides.ruby-china.org/asset_pipeline.html http://guides.rubyonrails.org/asset_pipeline.h ...
随机推荐
- js & for & for of & for in & forEach, break
js & for & for of & for in & forEach, break js for break https://stackoverflow.com/q ...
- C++算法代码——众数
好久没更新了-- 题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1615 题目描述 N 个 1 到 30000 间无序数正整数,其中 ...
- 02.描述统计 (descriptive statistics)
1.数据的可靠性和有效性 2.利用图表对数据进行可视化 2.1分类变量的可视化 2.11无序分类变量 2.12有序分类变量的可视化 2.1数值变量的可视化 数据的分布
- 聊聊CacheLine
本文转载自聊聊CacheLine 导语 文章聊聊缓存一致性协议中我们提到过,缓存里面最小的单位是缓存行/缓存条目,但是缓存中的具体存储结构是什么样的,缓存行中有存放的是什么?在缓存中是如何寻找指定是还 ...
- 详解Go语言调度循环源码实现
转载请声明出处哦~,本篇文章发布于luozhiyun的博客: https://www.luozhiyun.com/archives/448 本文使用的go的源码15.7 概述 提到"调度&q ...
- java中this和super的用法及区别
this 用法1:代表当前对象本身 用法2:方法形参和类成员变量重名,用this进行区别 class demo{ private int age = 10; public int getAge(int ...
- 死磕以太坊源码分析之EVM动态数据类型
死磕以太坊源码分析之EVM动态数据类型 配合以下代码进行阅读:https://github.com/blockchainGuide/ 写文不易,给个小关注,有什么问题可以指出,便于大家交流学习. So ...
- 第39天学习打卡(UDP多线程在线咨询 URL)
UDP多线程在线咨询 package com.kuang.chat; import java.io.BufferedReader; import java.io.InputStreamReade ...
- JDK的下载、安装与配置
一.JDK的下载 1.JDK下载地址:https://www.oracle.com/cn/java/technologies/javase-downloads.html 2.登录Oralce官网:ht ...
- 181. 超过经理收入的员工 + join + MySql
181. 超过经理收入的员工 LeetCode_MySql_181 题目描述 方法一:笛卡尔积 # Write your MySQL query statement below select e1.N ...