線上系統問題定位

1、線上系統查看命令html

(1)查看系統限制java

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虛擬機自己限制redis

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

(3)查詢當前某程序的線程或者進程數tomcat

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)查詢當前整個系統已用的線程或者進程數elasticsearch

pstree -p | wc -l

 參見:http://lisiqi.cc/技術/2015/12/24/一次線上多線程bug修復.htmltcp

(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.net

 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

2、線上系統啓動

  (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 &
相關文章
相關標籤/搜索