先总结下常用的一些监控工具:

##linux命令

  • w

系统负载

  • lsof -p pid

进程打开的文件

  • lsof -i:port

端口的运行情况

  • free -m

内存情况

  • vmstat

进程、内存、内存分页、堵塞IO、traps及CPU活动的信息

  • iostat

磁盘io情况

  • top -n 1

cpu/负载/内存等使用情况.

  • iotop

磁盘io

  • ps aux | sort -k6nr | head -n 10

查看linux 实际内存占用最多的10个

  • ps aux | sort -k5nr | head -n 10

查看linux 虚拟内存占用最多的10个

  • dstat -lamps

查看系统整体状况

  • pstree -al pid|head -n 1

查看进程启动命令

  • strace -T -p pid

查看进程系统调用.开销很大,使用时要小心.

  • netstat

netstat -an |grep port 查看端口连接情况

netstat -alnp |grep pid 通过pid查看进程所有端口情况

  • ss -lntp |grep port

通过端口查看进程

  • nmon

强大的监控工具.也可以方便的出报表.我一般用来在压力测试时监控系统性能.

  • latencytop

用于查看系统内部慢.以前做mysql性能优化,多亏有这东东.

  • cat /proc/pid/status |grep Threads

查看进程内线程个数

##java工具

  • jvisualvm

jvm的运行情况/各种dump的分析都可以干,没有JRMC牛.oracle承诺会把JRockit的特性迁移到HotSpot上面来.现在jdk下已经有jmc了.

  • jps -lv

查看所有java进程.

  • jinfo -sysprops pid

查看java进程系统参数

  • jinfo -flag jvmflag pid

查看jvm flag.比如查看xss,jinfo -flag ThreadStackSize pid

  • jstack pid

查看线程栈信息

  • jmap -dump:live,format=b,file=xxx.hprof pid

生成heap dump

  • jmap -histo pid

查看java堆中对象统计信息

  • java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal

查看jvm flag

	The first column appears to reflect the data type of the option (intx, uintx, uint64_t, bool, double, ccstr, ccstrlist). The second column is the name of the flag and the third column is the value, if any, that the flag is set to. 	The fourth column appears to indicate the type of flag and has values such as {product},{pd product}, {C1 product} for client or {C2 product} for server, {C1 pd product} for client or {C2 pd product} for server, {product rw}, {diagnostic} (only if -XX:+UnlockDiagnosticVMOptions was specified), {experimental}, and {manageable}. See Eugene Kuleshov's The most complete list of -XX options for Java 6 JVM for a brief description of most of these categories as well as a listing of most of these options themselves.

线程栈分析器,这个是jvisualvm的插件.

基于eclipse的heap dump分析工具,这个工具是比jvisualvm在heap分析这块专业.不过jvisualvm能cover住大多数场景,基本上我都只用jvisualvm了.

  • jmap -heap pid

检查heap情况

GC日志分析

  • jstat -gcutil pid

查看gc总体情况

	S0  — Heap上的 Survivor space 0 区已使用空间的百分比 	S1  — Heap上的 Survivor space 1 区已使用空间的百分比 	E   — Heap上的 Eden space 区已使用空间的百分比 	O   — Heap上的 Old space 区已使用空间的百分比 	P   — Perm space 区已使用空间的百分比 	YGC — 从应用程序启动到采样时发生 Young GC 的次数 	YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒) 	FGC — 从应用程序启动到采样时发生 Full GC 的次数 	FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒) 	GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
  • btrace

神器,线上出问题了,想知道某个方法的调用情况,入参之类的,就靠btrace了. 此工具大致原理如下:

  1. btrace-client attach 目标进程(com.sun.tools.attach.VirtualMachine#attach)
  2. 加载agent btrace-agent (com.sun.tools.attach.VirtualMachine#loadAgent)
  3. agent启动服务端,开启监听端口
  4. brace-client 把编译好的用户btrace代码发送到服务端,并等待服务端响应
  5. btrace-agent 通过asm修改运行时代码,织入用户btrace代码逻辑.监控到信息后,发给btrace-client

linux 监控命令的更多相关文章

  1. linux监控命令全覆盖(图文说明)

    1.1 top 1.1.1 命令说明 Top 命令能够实时监控系统的运行状态,并且可以按照cpu.内存和执行时间进行排序 1.1.2 参数说明 命令行启动参数: 用法: top -hv | -bcis ...

  2. Linux监控命令整理(top,free,vmstat,iostat,mpstat,sar,netstat)

    1.1 top 1.1.1 命令说明 Top 命令能够实时监控系统的运行状态,并且可以按照cpu.内存和执行时间进行排序 1.1.2 参数说明 命令行启动参数: 用法: top -hv | -bcis ...

  3. Linux监控命令之==>sar

    一.使用说明 sar 是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及 ...

  4. linux监控命令nc用法

    一.nc命令检测端口的用法 # nc -v -w 10 %IP% -z %PORT% -v 显示指令执行过程. -w <超时秒数> 设置等待连线的时间. -u 表示使用UDP协议 -z 使 ...

  5. Linux监控命令之==>lsof

    一.命令说明 lsof 命令的原始功能是列出打开的文件的进程,但LINUX 下,所有的设备都是以文件的行式存在的,所以,lsof 的功能很强大. 二.参数说明 -a :列出打开文件存在的进程 -c&l ...

  6. Linux监控命令之==>strace

    一.命令介绍 strace 常用来跟踪进程执行时的系统调用和所接收的信号.在Linux 世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式 ...

  7. Linux监控命令之==>free

    一.命令说明 free 命令显示系统内存的使用情况:包括物理内存.交换内存(swap)和内核缓冲区内存 二.参数说明 -b -k -m -g:分别以字节.KB.MB.GB为单位显示内存使用情况 -l: ...

  8. Linux监控命令之==>top

    一.命令说明 top 命令能够实时监控系统的运行状态,并且可以按照CPU.内存和执行时间进行排序,同时top 命令还可以通过交互式命令进行设定显示,通过top 命令可以查看即时活跃的进行. 二.参数说 ...

  9. Linux监控命令

    dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换.注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2它不是一个专业的测试工具,不过如果对于 ...

随机推荐

  1. 逻辑回归:使用SGD(Stochastic Gradient Descent)进行大规模机器学习

    Mahout学习算法训练模型 mahout提供了许多分类算法,但许多被设计来处理非常大的数据集,因此可能会有点麻烦.另一方面,有些很容易上手,因为,虽然依然可扩展性,它们具有低开销小的数据集.这样一个 ...

  2. 批量翻转PNG图片

    用了好几个软件都不好用. 要么不能翻转PNG, 要么翻转之后没有透明度了. 基本上全是图形界面, 要鼠标批量拖放. 所以, 还是自己动手, 写一个批量png翻转工具. #include <ios ...

  3. Jquery插件之信息弹出框showInfoDialog(成功、错误、警告、通知)

    一.信息种类说明: 1.1.操作成功信息 1.2.错误信息 1.3.警告信息 1.4.通知信息 二.使用说明 <!DOCTYPE html PUBLIC "-//W3C//DTD HT ...

  4. MySQL设置

    在MySQL的使用中很容易出现乱码的情况. 实际上在MySQL中有个地方表明了系统中所用到的所有的字符集. 例如: 从中可以看出,对于server和database的默认字符集都是latin1,这样很 ...

  5. 如何用.NET创建Windows服务

    我们将研究如何创建一个作为Windows服务的应用程序.内容包含什么是Windows服务,如何创建.安装和调试它们.会用到System.ServiceProcess.ServiceBase命名空间的类 ...

  6. C语言学习总结(四) 剩余内容

    第六章.剩余内容 (预处理指令,宏定义,条件编译,文件操作) 预处理指令 简单的来说就是在程序编译之前需要做的事情 1.宏定义 概念: 是一个替换代码的预处理指令,可以在编译之前进行代码替换(宏展开, ...

  7. css详解笔记

    CSS中的块级元素与行内元素 块级元素特性: 1.占据一整行,总是重起一行并且后面的元素也必须另起一行显示. 2.内联元素特性: 3.和其他内联元素显示在同一行. 块级元素列举如下: div(文档分区 ...

  8. 如何通过数据库修改WordPress后台登录密码

    大家是否有过因为忘记WordPress后台登陆密码的时候?其实WordPress后台登陆密码的找回或修改的方法有多种,比如通过邮箱重启密码,又或者通过主机控制面板进入数据库修改等等.本篇教程以GoDd ...

  9. bzoj 3744: Gty的妹子序列 主席树+分块

    3744: Gty的妹子序列 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 101  Solved: 34[Submit][Status] Descr ...

  10. [BZOJ 3894] 文理分科 【最小割】

    题目链接:BZOJ - 3894 题目分析 最小割模型,设定一个点与 S 相连表示选文,与 T 相连表示选理. 那么首先要加上所有可能获得的权值,然后减去最小割,即不能获得的权值. 那么对于每个点,从 ...