性能--redis,kafka,db,grafna

文章介绍了如何管理和监控多个IT组件,包括Redis的基本配置和内存信息查询,Kafka的消息积压量检查,Grafana应对磁盘满的情况处理,ElasticSearch的索引和搜索性能监控,以及DB的连接和性能查看。此外,还涉及Linux系统中的文件操作和性能监控工具的使用。
摘要由CSDN通过智能技术生成

redis

  1. 获取redis的基本配置:config get *
  2. 获取redis的内存信息:info memory
  3. 获取redis中某个key的值:get a::topic “value 的内容”
  4. 设置redis中key的值(一般由代码调用,测试只查询):set get a::topic::get a::topic_list
  5. 判断key存在:exists MOBS_ASYNC::MB_ASYNCvideo_channel_list
  6. 查询集群节点信息: cluster nodes
  7. 获取慢日志:/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
  8. 查询redis的命中率info stat

kafka

  1. 查看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

  1. 连接查看数据库名:db2 list db directory

  2. db2: db2 connect to dbname user username using password
    其中:
    User后接的username是jdbc连接数据库的用户名
    Password 后跟的是数据库jdbc连接的密码

  3. 输入db2命令回车,进入命令控制台。
    删除大量数据后虽然数据删除成功,但是数据文件占用磁盘空间不会被释放,此时可以在控制台使用:REORG TABLE MPC_INTEL_RECOMM_INFO命令来整理下表,防止碎片过多,影响查询效率
    输入命令REORG TABLE MPC_INTEL_RECOMM_INFO

Ctrl + c 可以退出命令执行界面

  1. 输入 db2top -d dbname,进入db2的实时监控界面
  2. 输入以下响应的字母可以进入相关的监控界面:
    字母d:显示的是整体DB的使用情况(如Buffer表示DB有多少数据在缓存中,重复查询的结果集应会放在缓存中,HitRatio表示重复的查询有多少概率是命中缓存的)如果此值低于95%需要特别关注,如果低于90%需要进一步排查问题。
    按键t:查看当前表空间的使用情况:
    按键D:查看当前运行的SQL情况
    按键z,然后输入按照某一行到排序,比如执行次数是按键3倒叙排列
    按键L:可输入HashValue 值查看sql的详细内容
    按键T :查看当前的表,如可以看表的大小。

linux

  1. 复制命令及远程复制
    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
  2. 按照文件名称查找和按照大小查询
    find ./ -name *2309 --查找以2309结尾的文件
    find . -type f -size +1G --查找大小超过1G的文件
  3. 日志查找:
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。例如应用服务器堆内存设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值