当前位置: 首页 > article >正文

常用性能参数检查方法图示

linux批量处理

系统级

CPU、中断、上下文切换、页换出换入

可用物理内存

网络丢包情况

域名IP映射

可用磁盘

可编写如下脚本获取host.txt

#!/bin/sh

vmstat 1 10 > host.txt
free | awk 'NR==2{print $7}' >> host.txt
netstat -in  |awk '$1=="ens192"{print $0}' >> host.txt
cat /etc/hosts  >> host.txt
cat /etc/hostname >> host.txt
df -h >> host.txt

应用级

端口队列

进程文件描述符

JVM启动参数(非JVM中间件无)

JVM堆内存使用情况(非JVM中间件无)

可编写如下脚本获取host.txt,其中ports.txt文件每行为一个Web端口号,对应一个进程,如

在这里插入图片描述

#!/bin/sh

for port in `cat ports.txt`
do
   echo $port
   echo '获取进程号'
   netstat -nlp |grep :$port |awk '{print $7}' |   awk -F '/' '{print $1}'  >$pid'_'$port.txt
   pid=$(cat $pid'_'$port.txt)
   echo $pid
   echo '获取backlog队列'
   ss -ltnp  |grep -w :$port  |  awk '{print $2" "$3}' > backlog$pid'_'$port.txt
   echo '获取socket描述符'
   echo 'ls /proc/$pid/fd | sort -r -n -k1 | awk "NR==1"'     
   ls /proc/$pid/fd  | sort -r -n -k1 | awk 'NR==1' >limit$pid'_'$port.txt
   echo "cat /proc/$pid/limits | awk '/^Max open files/ {print $4}'"
   cat /proc/$pid/limits | awk '/^Max open files/ {print $4}' >> limit$pid'_'$port.txt
   echo '获取启动参数'
   jcmd $pid VM.flags > vmstart$pid'_'$port.txt
  
   echo '获取堆信息'
   jmap -heap $pid  | awk '{if($1=="MaxHeapSize"||$1=="OldSize"  ) print $3}'   >>vmrun$pid'_'$port.txt  
   jmap -heap $pid  | tail -n 3  | awk -F"%" 'NR==1{print $1}'  >>vmrun$pid'_'$port.txt 
done 

常规检查项

### JDK位数
检查建议

64位

检查方法

1.定位进程使用的java路径(启动时weblogic或tomcat域日志中会打印路径)
2.在java路径下,执行java -version,返回结果有64表示64位,无则表示32位。

在这里插入图片描述

### Weblogic位数
检查建议

64位

检查方法

​ 打开自己的weblogic安装目录,C:\Oracle\Middleware\wlserver_10.3\server\native,在native下有个文件夹。 如果为windows系统则为win/32,则为32位的系统, 如果为Linux系统则为 Linux/,如果有x86_64、64则为64位,如无则为32位。

在这里插入图片描述

### weblogic反向域名解析
检查建议

禁止

检查方法

​ 域路径/config/config.xml文件查看“false”, 不存在则加上此行

在这里插入图片描述

### Tomcat位数检查
检查建议

64位

检查方法

命令行执行TOMCAT目录/bin/version.bat(Linux version.sh),查看“Architecture”值

### Tomcat反向域名解析
检查建议

禁止

检查方法

​ OMCAT目录/conf/server.xml,enableLookups设置为false

在这里插入图片描述

### CPU占用情况
检查建议

总体使用量<70%

检查方法

​ 1.在windows系统,打开任务管理器->“性能”,可获知CPU利用率,其次点击CPU图右键,选择“逻辑处理器”,可看见每个CPU即核数;

​ 2.在Linux系统,执行Top命令,见%CPU列,使用率=100%-id百分比;其次按1可看见CPU个数即核数。

在这里插入图片描述

在这里插入图片描述

### 物理内存
检查建议

可用内存>4G ,预留文件处理、socket网络连接、硬件缓存等。

检查方法

​ 1.在windows系统,打开任务管理器->“性能”,可获知内存使用情况;
​ 2.在Linux系统,执行free -m ,查看Mem行,其中可用内存free+buffers+cached。

在这里插入图片描述

### 磁盘
检查建议

每个分区可用大于30%

检查方法

​ 1.在windows系统,查看我的电脑,可获知磁盘使用情况;

​ 2.在Linux系统,执行df -h,可获知磁盘使用情况;也使用 df -i监控文件原数据使用情况。

在这里插入图片描述

### JVM内存
检查建议

单机所有-Xmx之和不超过物理内存-4G,

检查方法

​ 通常主机中任务管理看到是物理内存,JVM内存分配的是虚拟内存。理论上虚拟内存大于等于物理内存,每个进程都有一个虚拟内存,一台主机上的所有进程可使用虚拟内存总和=物理内存+交换内存,交换内存使用额外压缩的物理内存或磁盘做存储,当应用虚拟内存使用不够时,会使用交换内存,交换内存使用会降低应用程序性能,所以生产上要求JVM最大内存<=操作物理内存-4G,其中-4G指的是为操作系统保留4G的文件缓存和网络缓存。32位程序虚拟内存一般限制在1.5G~2G,64位操作系统对虚拟内存可认为无限制(也跟总线有关)。在Windows Server 2003 系统测试下,3.5G物理内存,JDK 5.0下测试,最大JVM内存可设置为1478m。所以要求应用服务器、JVM、操作系统等软件必须为64位。
可内存配置多大没有统一的标准,跟系统复杂度、系统压力都有关,在业务高峰期执行 jstat(参考文档中的章节“7.1.1.1,7.1.2.1”),持续查看一段时间或在windows系统上使用JDK路径/bin/console.exe连接查看。以确定峰值使用情况。

在这里插入图片描述

##### jdk<=1.6

​ jstat -gcutil pid 3000 5 表示每3秒执行一次查看来年代内存O和垃圾回收次数FGC,若有明显增加,则进行第二步。

在JDK1.6版本中无jmap -heap命令,也可以通过jps -lmv观察-Xmx值,再使用jstat命令观察oldsize,计算占比。

在这里插入图片描述

jdk>1.6

jmap -heap pid 查看老年代Old Generation。
jmap -histo:live pid 强制执行垃圾回收。
再次执行jstat或jmap -heap ,观察老年代占比是否明显降低至<30%,没降低基本可以确定内存占用过多未释放。

在这里插入图片描述

### window cmd控制台
检查建议

屏幕宽度,高度500以下。

检查方法

​ windows环境下,查看域cmd窗口,点击头部空白处,属性->布局,查看屏幕缓冲区设置,宽度和高度调整至500以下。

在这里插入图片描述

mysql检查项

### 慢SQL
检查建议

​ SQL执行时间>5秒。

检查方法

​ 按平均时间降序排列,按秒输出,调优的标准可以是>5秒的SQL

use `performance_schema`;

SELECT DIGEST_TEXT,AVG_TIMER_WAIT/1000/1000/1000/1000 FROM events_statements_summary_by_digest order by AVG_TIMER_WAIT desc
### 连接数量
检查建议

​ 不小于5,不大于200,过小可能说明是否客户端存在问题或网络存在问题,过大说明压力大,要关注优化。

检查方法

​ 查看在线连接数。

SHOW GLOBAL STATUS LIKE 'Threads_connected';
### 错误情况
检查建议

​ 判断是否存在出错的SQL,或出错的SQL是否可接受。

检查方法
select * from events_statements_history h where h.errors >0   order by h.TIMER_END desc;

其他

化。

检查方法

​ 查看在线连接数。

SHOW GLOBAL STATUS LIKE 'Threads_connected';
### 错误情况
检查建议

​ 判断是否存在出错的SQL,或出错的SQL是否可接受。

检查方法
select * from events_statements_history h where h.errors >0   order by h.TIMER_END desc;

其他

参考https://www.modb.pro/db/624580


http://www.kler.cn/news/289386.html

相关文章:

  • Unity ScriptableObject持久化操作
  • 装饰器模式及应用【理论+代码】
  • 弱通联条件下的人机混合控制
  • 蓝桥杯备赛day02:递推
  • 【Linux操作系统】:Linux生产者消费者模型
  • 数据分析-MAC 编程环境安装教程
  • 淘客APP的前后端分离架构设计
  • 学习记录——day42 多态
  • 算法图解(2)
  • 【Day08】
  • weak_ptr是否有计数方式,在哪分配的空间。
  • MacBook Pro M3 安装 Node.js v14 的兼容性
  • 进阶SpringBoot之 Shiro(6)整合 Thymeleaf
  • 【word导出带图片】使用docxtemplater导出word,通知书形式的word
  • 0基础学习爬虫系列:Python环境搭建
  • Anaconda的环境管理操作命令详解-学习篇
  • mysql创建数据库和表
  • list的简单实现
  • springblade-JWT认证缺陷漏洞CVE-2021-44910
  • 4.1 数据分析-excel 基本操作
  • Java语言程序设计基础篇_编程练习题**17.21 (十六进制编辑器)
  • LinkedList与链表
  • Java基于微信小程序的实习管理系统
  • C++ 设计模式——中介者模式
  • Django 安装指南
  • notepad++软件介绍(含安装包)
  • 力扣56-合并区间(Java详细题解)
  • Electron 项目实战 02:打包和自动更新
  • Linux下的VLC简介
  • 语言桥梁:探索全球最受欢迎的翻译工具,让理解更简单