- 博客(34)
- 收藏
- 关注
原创 网络
带宽及流量#带宽大小查看#第一步: 查看有几个网卡 > [root@localhost ~]# ifconfig #第二步:查看带宽大小 > [root@localhost ~]# ethtool em1 如果Speed: 100Mb/s表示百兆带宽,对应12.5MB 如果Speed: 1000Mb/s表示千兆带宽,对应125MB #查看当前的流量近处情况 方式一: nload nload命令详解: -u 流量单位 b.
2021-04-30 15:13:52
158
原创 jvisualvm
通过jvisualvm可以确定以下几个问题:服务端目前能否处理的过来堆大小是否够用有无内存泄漏应用消耗了多少cpu时间GC消耗多少CPU时间jvisualvm其他知识:JVM如果没有设置-Xmx,则默认为物理内存的1/4JDK1.8不用再配置permsizejmap– jmap -head pid– jmap -histo pidjstat– jstat -gcutil 2388 3000 6...
2021-04-30 14:41:51
148
原创 Arthas
下载启动java -jar arthas-boot.jar # 选择自己的java进程序号用法进入arthas交互界面后,可以用命令查看相关信息dashboard #当前系统的实时数据面板exit或者quit #退出交互界面,完全退出用stopthread thread --help thread |grep BLOCKED #查看是否存在线程的资源争用或者阻塞 thread -b #找到阻塞线程的是哪个锁 tread thread 20 #查看指.
2021-04-30 11:32:28
108
原创 top命令按1提示“terminal is not big enough”
因为CPU核数太多,一屏幕展示不下,可以用这个查看没看没核CPU的使用情况mpstat -P ALL
2021-04-29 07:37:14
504
原创 性能分析
一定要压出线程数、TPS、响应时间的梯度曲线,如果没有可通过【降低压力机线程数】【放缓Rump-up值】【减少jmeter报告的统计粒度以增加毛刺】来达到目的如果压力没到服务端,需要排查【服务端网络队列】【压力机端队列】...
2021-04-23 16:19:49
71
原创 redis
架构特点速度快(数据在内存中)单线程持久化主从常见数据结构持久化RDB : 定期保存快照到rdb文件,启动时自动加载rdb文件AOF : 把每⼀个写请求都记录在⼀个⽇志⽂件⾥。在Redis重启时,会把AOF⽂件中记录的所有写操作顺序执⾏⼀遍,确保数据恢复到最新redis监控...
2021-04-22 16:37:06
38
原创 mysql
架构SQL----------> 进入 connecton pool----------> 进入SQLInterface模块,判断是DDL还是DML-----------> 进入Parse模块,进行语法判断----------> 进入Optimizer模块进行优化----------> 进入Cache模块,判断是否有缓存----------> 进入文件系统读写数据主从慢日志锁存储引擎– MyISAM:使用的表级锁,不支持事务– In.
2021-04-21 20:02:57
56
原创 nginx
全局配置worker_processes 4 ; 处理请求的进程数,和cpu核数保持一致 worker_rlimit_nofile102400 ; nginx可打开的最大文件数, 不超过ulimit -nEvents事件worker_connections 65535 ;单个worker进程运行客户端的最大连接数,worker_connections*worker_processes<worker_rlimit_nofileuse epoll ; 使用epoll
2021-04-19 17:21:49
57
原创 内存溢出和内存泄漏
内存泄漏memory leak : 指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出内存溢出out of memory:指程序申请内存时,没有足够的内存供申请者使用可能导致内存溢出的几种情况:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;3.代码中存在死循环或循环产生过多重复的对象实体;4.使用第三方软件的BUG5.启动参数内存值设定的过小.
2021-03-16 15:48:18
36
原创 mysql定向抓取慢SQL(SQL分析) pt-query-digest
pt-query-digest安装1.下载安装工具wget percona.com/get/pt-query-digest2.授予用户执行权限chmod u+x pt-query-digest3.移动位置,注意pt-query-digest安装位置不一定在/目录下,也可能在/root/目录下,根据实际情况调整mv /pt-query-digest /usr/bin/或mv /root/pt-query-digest /usr/bin/4.安装与Perl相关的模块yum install
2021-03-16 15:37:16
110
原创 mysql性能瓶颈分析
思路一如果mysqld CPU消耗高,看慢日志和lock的监控图,或者看监控图里的scan,怀疑有慢查询的话,可以用select * from mysql.slow_log ORDER BY query_time DESC LIMIT 10;查看;找到后通过添加索引进行优化思路二通过select * from information_schema.INNODB_TRX;查看运行中的事务拿到慢sql,explain分析,添加索引...
2020-11-25 18:07:05
246
原创 mysql慢查询和索引
1. 慢查询mysql的慢查询功能默认关闭,需要可手动开启。#查看慢查询相关配置show variables like '%query%';#临时开启慢查询set global slow_query_log = ON;#查看日志输入类型show variables like '%log_output%';#修改日志输出类型为table,默认为none, 设置为table后慢查询语句会存储在slow_log中set global log_output='TABLE';#查看慢sql
2020-11-25 17:30:50
146
1
原创 tomcat
tomcat架构图tomcat性能优化点运行模式BIO###NIOAcceptor 是 TCP 层面的东西,它负责完成 TCP 握手的过程,放入全连接队列,然后将数据生成 request,调用 servlet 容器处理。而 Worker 干的就是接到 request 数据,处理后给出 response。Poller 是一个队列,属于典型的生产者 - 消费者模式。请求量、请求时间、响应时间配置在 conf/server.xml 中做如下配置<Valve className
2020-11-25 11:04:48
240
原创 测试管理
测试人员考核标准工作态度工作能力对团队的贡献是否积极主动帮助组员解决技术难题跨部门协作负责的产品bug漏测情况、严重等级新员工试用期内要对组织的贡献某公司存在的问题1) 开发提测质量极差,主流程都走不通,导致:第一:测试周期边长第二:测试的核心从“发现潜在的bug” 被迫变为“测试人员驱动开发人员完善功能开发”第三:测试核心转移+周期紧张,导致漏测率提高第四:在公司不好的风气下,测试leader也不抓质量2)硬件设施不到位多次压力机瓶颈导致压测停止平时不重视产品性能
2020-11-05 13:42:03
109
原创 mysql快速抓取慢sql的方式
方式一: 通过pt-query-digest定向抓取,explain分析,添加索引方式二: 通过查看运行中的事务拿到慢sql,explain分析,添加索引注意:数据量小时,添加索引不会对TPS有过于明显的影响
2020-11-05 08:39:54
308
原创 mysqlreport
介绍mysqlreport以很友好的方式显示 mysql状态,它把mysql的show status 和 show innodb status的结果进行一系列的后期处理,让可读性更强,更友好安装mysqlreport 是用perl语言编写,所以想要运行它首先需要安装perl环境;它还要与mysql数据库连接,所以还需要安装数据库接口 DBI 和 数据库驱动 DBD-MySQL查看是否安装:[root@yanfa-1 ~]# perl -vThis is perl, v5.10.1 (*) bu
2020-11-04 21:55:34
85
原创 MYSQL profiling分析SQL慢的具体原因
1.查看profile是否打开select @@profiling;mysql> select @@profiling;+-------------+| @@profiling |+-------------+| 0 |+-------------+1 row in set, 1 warning (0.00 sec)mysql>0代表关闭;1代表打开。2.打开profilemysql> set profiling=1;Query OK, 0
2020-11-04 20:05:39
269
原创 tsung
为什么要使用tsung?jmetertsung开发语言java开发语言erlang(面向高并发的编程语言)多线程方式并发轻量级并发支持分布式压测,但不支持分配压力权重支持分布式压测,也可分配压力权重支持脚本录制和修改脚本录制和修改非常方便监控需要自己开发监控全面(CPU内存网络IO)长时间运行容易OOM报告全面...
2020-10-14 12:07:19
67
原创 java积累
快捷键ctrl+alt+B-------------> 找接口的实现类快速按两个shift --------->全局查找ctrl+alt+t---------> 把代码包在某一个块内ctrl+alt+v--------->自动补全返回值Ctrl+Alt+L--------->格式化代码ctl+d--------->复制行ctrl+y--------->删除行ctrl+i--------->重写接口实现类...
2020-09-08 14:39:36
71
原创 性能案例
CPU高查消耗cpu高的进程pidtop -p 进程pid -Hprintf “%X” 线程pid线程转16进制jstack -l 进程pid>1.txt 在1.txt里搜做16进程的线程CPU软中断IO瓶颈压测过程中通过vmstat命令,查看wa(等待IO时间的百分比)和b(等待IO的进程数量),如果这两者都很高,则可能存在IO瓶颈网页响应慢TPS压不上去网络瓶颈mysql问题第一步,先看服务器整体资源使用第二步,看连接数、.
2020-09-08 13:18:16
187
原创 性能基础
nginx响应时间参数upstream_response_time:从 Nginx 建立连接 到 接收完数据并关闭连接request_time:从 接受用户请求的第一个字节 到 发送完响应数据upstream_response_time和request_time的单位为秒如果把整个过程补充起来的话 应该是:[1用户请求][2建立 Nginx 连接][3发送响应][4接收响应][5关闭 ...
2020-03-01 23:18:02
191
原创 shell脚本
timeout命令参数:后缀”s”代表秒(默认值),”m”代表分,”h”代表小时,”d”代表天。timeout 10 1.sh 10秒后停止脚本(10秒内脚本一直在运行,超过10秒停止)timeout 10m 1.sh 10分钟后停止脚本sleep 10暂停10秒实现加法运算a=10b=20c=expr ${a} + ${b}echo “$c”远程连接服务器...
2020-03-01 22:51:16
167
原创 Bean Shell常用内置变量
取样器/预处理器/后置处理器beanshell 取样器作用:写java脚本和jmeter交互、输出日志例如: log.info(“123”);beanshell 预处理器作用:打印请求信息beanshell后置处理器作用: 打印响应信息例如: 打印responseString response = prev.getResponseDataAsString();log.info(...
2019-10-03 21:37:08
138
原创 线程池、数据库连接池
线程池原理先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。数据库连接池原理数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和...
2019-10-03 21:12:41
130
原创 nginx+tomcat集群配置
nginx集群配置方式nginx代理一台tomcatlocation / {proxy_pass http://192.168.1.101:8080}nginx代理两台tomcathttp{ upstream server_yinyongjie{ #服务器列表 server 192.168.1.102:8080 server 192.168.1.203:8080...
2019-10-03 21:08:29
182
原创 linux下配置jmeter环境变量
jdk环境变量配置在/etc/profile文件末尾加入JAVA_HOME=/home/yinyongjie/jdk1.8.0_201JRE_HOME=/home/yinyongjie/jdk1.8.0_201/jreCLASS_PATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/dt.jar:JAVAHOME/lib/dt.jar:JAVA_HOME/l...
2019-04-20 23:56:58
3288
原创 shell三剑客
grepgrep -i 忽略大小写grep -o 只显示匹配到的内容grep支持正则表达式.表示任意一个字符*表示任意字符多层过滤 grep ‘25786547’ 1.log | grep ‘13717624935’awk-F参数为指定分隔符print为打印$1为第一个域,2为第二域,2为第二域,2为第二域,为所有域\t为制表符echo “123|456|789”|aw...
2019-03-03 16:04:07
133
原创 map和json互转
@Testpublic void mapTojson(){ Map&amp;amp;lt;String,String&amp;amp;gt; map = new HashMap&amp;amp;lt;&amp;amp;gt;(); map.put(&amp;quot;name&amp;quot;,&amp;quot;张三&amp;quot;); m
2019-03-03 10:28:06
576
原创 JSON解析
第一步:先创建3个javaBean类Teacher类:public class Teacher {private String teacherName;private Integer teacherAge;private Course course;private List students;…此处省去get/set方法…Student类:public class Stude...
2019-03-03 09:41:41
595
原创 shell语法
变量不能用空格,大小写敏感变量中有空格需要用引号,单引号内无法引用变量,双引号可以不需要提前定义,引用时也不会报错使用{}引用变量,最保险的写法。echo $变量名注释#预定义变量echo $PWDecho $USERecho $HOMEecho $PATH数组a=(1 2 3 4 5) 注意:数组每个值之间用空格,不能用逗号echo ${a[@]} #遍历数组...
2019-02-28 03:27:31
242
原创 linux基本命令积累
文件及文件夹创建-修改-删除-移动-复制-获取-查看-清空cd 切换命令cd /cd ~cd …/…/cd xxll 展示所有的文件ll -h 友好的展示lsmkdir 创建目录mkdir 目录名mkdir -p a/b/b/bmkdir -p a b crmdir 移除目录rmdir 目录名 :移除空目录touch 文件名:创建一个空文件cp 文件名 目录/文件......
2019-02-28 03:19:11
500
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人