redis
- 获取redis的基本配置:
config get *
- 获取redis的内存信息:
info memory
- 获取redis中某个key的值:
get a::topic “value 的内容”
- 设置redis中key的值(一般由代码调用,测试只查询):
set get a::topic::get a::topic_list
- 判断key存在:
exists MOBS_ASYNC::MB_ASYNCvideo_channel_list
- 查询集群节点信息:
cluster nodes
- 获取慢日志:
/home/mobsapp/redis-cluster-masy/install/redis-5.0.5/src/redis-cli -h 182.1.1.1 -p 7001 -a password slowlog get 10000 >>/tmp/slowlog-redis-masy.txt
- 查询redis的命中率:
info stat
kafka
- 查看kafka的消息积压量:
./kafka-consumer-groups.sh --describe --all-groups --bootstrap-server 182.1.1.1:8080 | grep APP-SESSION-LOGIN-NOTICE | grep consumer
命令执行结果依次表示:group名称,消费的topic名称,partition id, consumer group最后一次提交的offset,最后提交的生产消息的offset,消费offset与生产offset之间的差值,当前消费topic-partition的group成员id
2. 使用脚本持续监控:
3. 执行命令sh kafka-test.sh 5 APP-SESSION-LOGIN-NOTICE
,表示执行5次,每执行一次命令会sleep 5秒,所以可以使用压测时间除以5秒来计算需要执行多少次。APP-SESSION-LOGIN-NOTICE:表示topic的name
脚本内容如下:
#/bin/bash
read -p "input a number:" x
read -p "input topicname:" y
i=1
rm test.log
while [[ $i -le $x ]]; do
sleep 5
echo "**************** $(date +%T)***************" | tee -a test.log
./kafka-consumer-groups.sh --describe --all-groups --bootstrap-server 182.1.1.1:8080 |grep $y | grep consumer >> test.log 2>&1
let i=$i+1
done
echo "end"
grafna
若某宿主机磁盘满,查询宿主机上运行了哪些微服务,做相应删除。一般只需要登录其中一台容器,做批量删除即可
登录上容器后,执行:du -h /var/app/logs | grep G
查找到达到G的文件夹,然后删除以gz和tmp结尾的文件。
rm -rf 地址.gz
rm -rf 地址.tmp
其余目录均可如此操作
关注实例数、当前连接线程数,活跃线程数、CPU利用率,jvm使用率,应用内存使用率、JVM内存使用率、JVM使用堆、应用使用内存。
查看JVM监控:
查询基础信息:settings/mapping
ES
基础信息:
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
1、为用户提供按关键字查询的全文搜索功能。
2、实现企业海量数据的处理分析的解决方案。大数据领域的重要一份子,如著名的ELK框架(ElasticSearch,Logstash,Kibana)
所有的监控图都是基于配置信息:number_of_shards,如果这个值为1,那说明只有一个分片,那么search rate(搜索请求的数量)就近似于请求发送的频率(tps),如果这个值为5则,频率约为tps的五倍。 一般来说单个分片大小30G左右,一个node一个分片,如果document上一级别且每个索引的mapping关系复杂,字段特别多,那么建议多放node。number_of_shards现在是1亿的数据,date有106GB,共有3个node,差不多是上限值。如果数据里继续增加则建议扩node。分片越多查询的频次是实际请求频次的相应的倍数,分片多了,CPU和内存压力大,分片少了单个分片数据量过大,则查询要扫描的内容过多就会较慢
GET /test/_mapping查看index下有多少字段映射关系。比如test下共计有三个字段,nickName、signStatus、userId,且type均为keyword。那么对单条数据进行查询时就会出现这条数据的三个字段信息。
GET /APP_userinfos/_search
{
"test": {
"match": {
"nickName.keyword": "用户3005642926"
}
}
}
Index Memory: lucene用于当前索引占用的堆内存
Disk:当前索引存放的数据量占用磁盘的大小(如果做插数或者跑批相关的操作需要监控此指标)
Request Rate:每分钟请求的数量
Request Time(ms):
Search:执行搜索花费的时间;
Indexing:在主从分片上执行索引花费发时间
Indexing (Primaries):在主分片上执行索引花费发时间
DB
-
连接查看数据库名:db2 list db directory
-
db2: db2 connect to dbname user username using password
其中:
User后接的username是jdbc连接数据库的用户名
Password 后跟的是数据库jdbc连接的密码 -
输入
db2
命令回车,进入命令控制台。
删除大量数据后虽然数据删除成功,但是数据文件占用磁盘空间不会被释放,此时可以在控制台使用:REORG TABLE MPC_INTEL_RECOMM_INFO
命令来整理下表,防止碎片过多,影响查询效率
输入命令REORG TABLE MPC_INTEL_RECOMM_INFO
Ctrl + c 可以退出命令执行界面
- 输入
db2top -d dbname
,进入db2的实时监控界面 - 输入以下响应的字母可以进入相关的监控界面:
字母d:显示的是整体DB的使用情况(如Buffer表示DB有多少数据在缓存中,重复查询的结果集应会放在缓存中,HitRatio表示重复的查询有多少概率是命中缓存的)如果此值低于95%需要特别关注,如果低于90%需要进一步排查问题。
按键t:查看当前表空间的使用情况:
按键D:查看当前运行的SQL情况
按键z,然后输入按照某一行到排序,比如执行次数是按键3倒叙排列
按键L:可输入HashValue 值查看sql的详细内容
按键T :查看当前的表,如可以看表的大小。
linux
- 复制命令及远程复制
cp /tmp/1.txt /tmp/2.txt
--把1.txt 复制到同目录下且重命名为2.txt
scp /tmp/1.txt mprdchk@182.198.11.11:/tmp/2.txt
--把本机的1.txt文件远程复制到182.198.11.11服务器的/tmp目录下,且重命名为2.txt - 按照文件名称查找和按照大小查询
find ./ -name *2309
--查找以2309结尾的文件
find . -type f -size +1G
--查找大小超过1G的文件 - 日志查找:
zgrep "service.timing" APP-MASSION-sgt-APP-6f45c447d7-s86tc_21.08.11_16_65.log* |awk -F ":" '{if($4>30)print $4}'
l service.timing为要查找的关键词,后接的是要在哪些文件查找
l awk -F “:” 表示以:作为分割符;'{if($4>30)print $1$4}'判断分割后的第4个字段大于10则打印第1和4列列值
4. vmstat 3
vmstat 3
:3秒取一次数 。
第一列,若值>cpu 核数则不正常;
第三列swap如果有且增长不正常;
第四列是剩余空闲内存;若不断减小也不正常;
倒数第四列和倒数第五列分别是CPU user% 和CPU的sys% 加起来的值不能超过70%,或者100-id(倒数第三列)值不超过70%
5. 查询连接数netstat
netstat -ano | grep -i '50000' | grep "182.1.11.11"
看下单台实例对DB的连接数。“50000”是DB的jdbc连接的端口号,"182.1.11.11"是应用服务的IP
6. 查询磁盘的容量:
df -g /df -m
(g表示单位以G表示,m表示单位以兆表示)
7. nmon的使用
1)首先上传nmon的文件到需要监控的服务器的可执行目录下
2)在压测之前在该服务器上打命令:
./nmon -s 5 -c 65 -F/tmp/01_1013.nmon
&(-s 后面接的是间隔多长时间收集一次系统资源的信息,-c表示需要收集多少次,两个值的乘积略大于压测的时间长度),然后开始压测,压测结束后,得到文件/tmp/01_1013.nmon即可。
3)如果服务器可达则使用sftp直接下载/tmp/01_1013.nmon,若果不能通过sftp连接,则需要先把文件复制到可以连接sftp的服务器上,如scp /tmp/test.nmon dbname@182.198.11.11:/tmp/
回车后输入dbname的密码,就可以远程把文件复制到名为dbname的服务器上的/tmp/test.nmon,然后再用sftp从dbname的服务器上将文件拉取到本地
4)对wps安装开发工具–vba(解压以下安装包,双击执行exe的文件,安装完后重启wps)
5)使用nmon解析工具进行解析,点击按钮“Analyze nmon data”“浏览”选择刚刚下载到本地的nmon文件,点击“打开”即可解析。解析完成可以查看sys_sum、cpu_all、memory等sheet页
nmon analyser v66.xlsm
如何定位服务器性能问题
(1)常用方法:排除法、极限法、猜错法、探针法、清单法等等
(2)可能的性能瓶颈:大量大图片、程序内存泄漏、程序死锁、文件频繁读写、慢SQL、缓存雪崩等等
例如:门户类型网站访问首页有大量大图片情况下,通过网络传输耗时;
例如:慢SQL,比如我们的数据库使用的是mysql,存量数据增大后,执行select语句的耗时超过1秒钟,这样的SQL就是慢SQL,需要我们对这样的慢SQL给出调优方案。
(3)JVM。例如应用服务器堆内存设置