线上系统问题定位

一、线上系统查看命令

(1)查看系统限制

cat /proc/sys/kernel/pid_max #查看系统支持的最大线程数(相当于理论值)
cat /proc/sys/kernel/thread-max
max_user_process(ulimit -u) #系统限制某用户下最多可以运行多少线程
cat /proc/sys/vm/max_map_count #硬件内存大小

(2)JVM虚拟机本身限制

-Xms #Inital java heap size
-Xmx #Maximum java heap size
-Xss  #The stack size for each thread

(3)查询当前某程序的线程或者进程数

pstree -p `ps -ef|grep XXX |awk '{print $1}'`|wc -l
或
pstree -p PID |wc -l

示例:

获取Tomcat进程PID
 ps -ef|grep tomcat
统计该tomcat进程内的线程个数
 ps -Lf PID|wc -l

(4)查询当前整个系统已用的线程或者进程数

pstree -p | wc -l

 参见:http://lisiqi.cc/技术/2015/12/24/一次线上多线程bug修复.html

(5)内存使用情况查询

./jstack pid|grep "on condition" |wc -l
A.heap usage
  jmap -heap pid
B.dump文件
  jmap -dump:live,format=b,file=XXX.bin pid

 参考:http://www.cnblogs.com/hechao123/p/7251682.html

 一次Tomcat hang住问题排查手记:https://www.zybuluo.com/zhanjindong/note/25710

 Tomcat性能参数优化:http://blog.csdn.net/fcly2013/article/details/54945591 

 Java服务线上系统性故障:http://techblog.youdao.com/?p=961

(6)指定端口的TCP连接数

netstat -an|grep 7090|wc -l
#查看某个端口TCP连接来源并排序
netstat -antl|grep ^tcp|grep ":2181"|awk '{print $5}'|awk -F":" '{count[$1]++}; END{for(ip in count) print ip, ":" count[ip]}'
|sort -n -k3 -r
#找到最多的TCP对应的机器,在那台机器上查看哪个进程占用的最多连接
netstat -anp|grep ":2181"|awk '{print $7}'|awk -F"/" '{print $1}'|sort|uniq -c|sort -nr

二、线上系统启动

  (1)redis启动

src/redis-cli -h 10.2.137.141 -p 6379
Server模块
nohup /data01/public/redis/redis_cluster1/src/redis-server /data01/public/redis/redis_cluster1/redis.conf &
nohup /data01/public/redis/redis_cluster1/src/redis-sentinel /data01/public/redis/redis_cluster1/sentinel.conf &
Master模块
nohup /data01/public/redis/redis_cluster2/src/redis-server /data01/public/redis/redis_cluster2/redis.conf &
nohup /data01/public/redis/redis_cluster2/src/redis-sentinel /data01/public/redis/redis_cluster2/sentinel.conf &
nohup /data01/public/redis/redis_cluster3/src/redis-server /data01/public/redis/redis_cluster3/redis.conf &
nohup /data01/public/redis/redis_cluster3/src/redis-sentinel /data01/public/redis/redis_cluster3/sentinel.conf &

 config set slowlog-log-slower-than 指定执行时间超过多少微秒

 (2)Flume启动

nohup /data01/java/flume/bin/flume-ng agent -c conf/ -f /data01/java/flume/conf/xxx.properties -n agent -Dflume.root.logger=INFO,console >/dev/null 2 &

(3)ELK启动

  A.Logstash启动

nohup bin/logstash -f config/translate.beats-es4.conf &

B.ElasticSearch启动

nohup ./elasticsearch &

C.Kibana启动

fuser -n tcp 5601
nohup ./kibana &

  

  

原文地址:https://www.cnblogs.com/moonandstar08/p/7507360.html