欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 宝鼎售后问题提交 | 后台管理


新闻资讯

MENU

软件开发知识

存储内存快照 jmap -histo [pid] 按照对象内存大小排序 注意会导 次  来源:劳务派遣管理系统 时间:2018-02-08

原文出处: Hosee

假如你的Linux处事器溘然负载暴增,告警短信快发爆你的手机,如安在最短时间内找出Linux机能问题地址?

种别 监控呼吁 描写 备注
内存瓶颈 free 查察内存利用
vmstat 3(隔断时间) 100(监控次数) 查察swap in/out具体定位是否存在机能瓶颈 推荐利用
sar -r 3 和free呼吁雷同,查察内存的利用环境,可是不包括swap的环境
cpu瓶颈 top -H 凭据cpu耗损坎坷举办排序
ps -Lp 历程号 cu 查察某个历程的cpu耗损排序
cat /proc/cpuinfo |grep ‘processor’|wc -l 查察cpu核数
top 查察cpu总体耗损,包罗分项耗损如user,system,idle,nice等耗损
top 然后shift+h:显示java线程,然后shift+M:凭据内存利用举办排序;shift+P:凭据cpu时间排序;shift+T:凭据cpu累计利用时间排序

多核cpu,按“1”进入top视图

sar -u 3(隔断时间) 查察cpu总体耗损占比
sar -q 查察cpu load
top -b -n 1 | awk ‘{if (NR<=7)print;else if($8==”D”){print;count++}}END{print “Total status D:”count}’ 计较在cpu load内里的uninterruptedsleep的任务数量 uninterruptedsleep的任务会被计入cpu load,如磁盘堵塞
网络瓶颈 cat /var/log/messages 查察内核日志,查察是否丢包
watch more /proc/net/dev 用于定位丢包,错包环境,以便看网络瓶颈 重点存眷drop(包被扬弃)和网络包传送的总量,不要高出网络上限
sar -n SOCK 查察网络流量
netstat -na|grep ESTABLISHED|wc -l 查察tcp毗连乐成状态的数量 此呼吁出格耗损cpu,昆山软件开发,不适合举办长时间监控数据收集
netstat -na|awk’{print $6}’|sort |uniq -c |sort -nr 看tcp各个状态数量
netstat -i 查察网络错误
ss state ESTABLISHED| wc -l 更高效地统计tcp毗连状态为ESTABLISHED的数量
cat /proc/net/snmp 查察和阐明240秒内网络包量,流量,错包,丢包 用于计较重传率tcpetr=RetransSegs/OutSegs
ping ip 测试网络机能
traceroute ip 查察路由颠末的地点 常用于定位网络在各个路由区段的耗时
dig 域名 查察域名理会地点
dmesg 查察系统内核日志
磁盘瓶颈 iostat -x -k -d 1 具体列出磁盘的读写环境 当看到I/O期待时间所占CPU时间的比重很高的时候,首先要查抄的就是呆板是否正在大量利用互换空间,同时存眷iowait占比cpu的耗损是否很大,假如大说明磁盘存在大的瓶颈,同时存眷await,暗示磁盘的响应时间以便小于5ms
iostat -x 查察系统各个磁盘的读写机能 重点存眷await和iowait的cpu占比
iotop 查察哪个历程在大量读取IO 一般先通过iostat查察是否存在io瓶颈,再定位哪个历程在大量读取IO
df -hl 查察磁盘剩余空间
du -sh 查察磁盘利用了几多空间
应用瓶颈 ps -ef | grep java 查察某个历程的id号
ps -ef | grep httpd| wc -l 查察特定历程的数量
cat ***.log | grep ***Exception | wc -l 统计日志文件中包括特定异常数量
jstack -l pid 用于查察线程是否存在死锁
awk’{print $8}’ 2017-05-22-access_log|egrep ’301|302′| wc -l 统计log中301、302状态码的行数,昆山软件公司,$8暗示第八列是状态码,昆山软件开发,可以按照实际环境变动 常用于应用妨碍定位
grep ‘wholesaleProductDetailNew’ cookie_log | awk ‘{if($10==”200″)}’print}’ | awk ‘print $12′ | more 打印包括特定命据的12列数据
grep “2017:05:22″ cookielog | awk ‘($12>0.3){print $12 “–” $8}’ | sort > 目次地点 对apache可能nginx会见log举办响应时间排序,$12暗示cookie log中的12列暗示响应时间 用于排查是否是由于是某些会见超长造成整体的RT变长
grep -v ‘HTTP/1.1″ 200′ 取出非200响应码的URL
pgm -A -f 应用集群名称 “grep “’301 ‘ log文件地点 | wc -l 查察整个集群的log中301状态码的数量
ps -efL | grep [PID] | wc -l 查察某个历程建设的线程数
find / -type f -name “*.log” | xargs grep “ERROR” 统计所有的log文件中,包括Error字符的行 这个在排盘查题进程中较量有用
jstat -gc [pid] 查察gc环境
jstat -gcnew [pid] 查察young区的内存利用环境,包罗MTT(最大交互次数就被互换到old区),TT是今朝已经互换的次数
jstat -gcold 查察old区的内存利用环境
jmap -J-d64 -dump:format=b,file=dump.bin PID dump出内存快照 -J-d64防备jmap导致虚拟机crash(jdk6有bug)
-XX:+HeapDumpOnOutOfMemeryError 在java启动时插手,当呈现内存溢出时,存储内存快照
jmap -histo [pid] 凭据工具内存巨细排序 注领悟导致full gc
gcore [pid] 导出完成的内存快照 凡是和jmap -permstat /opt/**/java gcore.bin 一起利用,将core dump转换成heap dump
-XX:HeapDumpPath=/home/logs -Xloggc:/home/log/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps 在Java启动参数中插手,打印gc日志
-server -Xms4000m -Xmx4000m -Xmn1500m -Xss256k -XX:PermSize=340m -XX:MaxPermSize=340m -XX:+UseConcMarkSweepGC 调解JVM堆巨细 xss是栈巨细