傻大方提要:【罗永浩|引人入胜,实战讲解“Java 性能调优六大工具”之 linux 命令行工具( 二 )】·TIME+:进程使用的 CPU 时间总计 , 单位为 1/100s 。 ·%MEM:进程使用的物理内存百分比 。 ·VIRT:进程使用的虚拟内存总量 , 单位为 KB , VIRT=SWAP+RES 。 ·...
按关键词阅读: 俞敏洪 罗永浩 锤子科技 李国庆
·TIME+:进程使用的 CPU 时间总计 , 单位为 1/100s 。
·%MEM:进程使用的物理内存百分比 。
·VIRT:进程使用的虚拟内存总量 , 单位为 KB , VIRT=SWAP+RES 。
·SWAP:进程使用的虚拟内存中被换出的大小 , 单位为 KB 。
·RES:进程使用的未被换出的物理内存大小 , 单位为 KB , RES=CODE+DATA 。 ·CODE:可执行代码占用的物理内存大小 , 单位为 KB 。
·DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小 , 单位为 KB 。
·SHR:共享内存大小 , 单位为 KB 。 ·nFLT:页面错误次数 。 ·nDRT:最后一次写入到现在被修改过的页面数 。
·S:进程状态 。 D 表示不可中断的睡眠状态 , R 表示运行 , S 表示睡眠 , T 表示跟踪或停止 , Z 表示僵尸进程 。
·COMMAND:命令名/命令行 。
·WCHAN:若该进程在睡眠 , 则显示睡眠中的系统函数名 。
·Flags:任务标志 , 参考 sched.h 。
在 top 命令下按 F 键可以进行列的选择 , 按 O 键可以更改列的显示顺序 。 此外 , top 命令还有以下一些实用的交互指令 。
·H:显示帮助信息 。
·K:终止一个进程 。
·Q:退出程序 。
·C:切换显示命令的名称和完整的命令行 。
·M:根据驻留内存大小进行排序 。
·P:根据使用 CPU 的百分比大小进行排序 。
·T:根据时间/累计时间进行排序 。
·数字 1:显示所有 CPU 的负载情况 。
注意:使用 top 命令可以从宏观上观察系统的各个进程对 CPU 的占用情况及内存使用情况 。
二 , sar 命令
sar 命令也是 Linux 系统中重要的性能监测工具之一 , 它可以周期性地对内存和 CPU 使用情况进行采样 。 基本语法如下:
interval 和 count 分别表示采样周期和采样数量 。 options 选项可以指定 sar 命令对哪些性能数据进行采样(不同版本的 sar 命令选项可能有所不同 , 可以通过 sar-h 命令查看) 。
·-A:所有报告的总和 。
·-u:CPU 的利用率 。
·-d:硬盘使用报告 。
·-b:I/O 的情况 。
·-q:查看队列长度 。
·-r:内存使用统计信息 。
·-n:网络信息统计 。
·-o:采样结果输出到文件 。
下面的代码使用 sar 命令统计 CPU 的使用情况 , 每秒采样一次 , 共采样 3 次 。
下面的代码用于获取内存的使用情况 。
下面的代码用于获取 I/O 信息 。
注意:sar 命令可以查看 I/O 信息、内存信息及 CPU 的使用情况 。
三 , vmstat 命令
vmstat 也是一款功能比较齐全的性能监测工具 , 它可以统计 CPU、内存及 swap 的使用情况等信息 。 和 sar 工具类似 , vmstat 也可以指定采样周期和采样次数 。 下面的代码表示每秒采样一次 , 共计 3 次 。
输出结果中 , 各列含义如表所示 。
vmstat 命令输出结果的含义
以下代码显示了一个线程切换频繁的 Java 程序 。
使用 vmstat 工具监控上述 Java 程序的执行情况:
通过加粗部分可以看到 , 系统有着很高的 cs 值(上下文切换)和 us 值(用户 CPU 使用时间) , 表明系统的上下文切换频繁 , 用户 CPU 占用率很高 。
注意:vmstat 工具可以查看内存、交互分区、I/O 操作、上下文
切换、时钟中断及 CPU 的使用情况 。
四 , iostat 命令
iostat 命令可以提供详尽的 I/O 信息 。 它的基本使用方式如下:
以上命令显示了 CPU 的使用概况和磁盘 I/O 的信息 。 对输出信息每秒采样 1 次 , 合计采样两次 。 如果只需要显示磁盘情况 , 不需要显示 CPU 使用情况 , 则可以使用以下命令:
-d 表示输出磁盘的使用情况 。 在输出结果中 , 各个列的含义如下:
·tps:该设备每秒的传输次数 。
·kB_read/s:每秒从设备读取的数据量 。
·kB_wrtn/s:每秒向设备写入的数据量 。
·kB_read:读取的总数据量 。
·kB_wrtn:写入的总数据量 。
如果需要得到更多的统计信息 , 可以使用-x 选项 。 例如:
注意:磁盘 I/O 很容易成为系统性能的瓶颈 。 通过 iostat 命令可以
快速定位系统是否产生了大量的 I/O 操作 。
pidstat 工具
pidstat 是一个功能强大的性能监测工具 , 它也是 Sysstat 的组件之一 。 读者可以
在
http://www.icewalkers.com/Linux/Software/59040/Sysstat.html上下载这个工具 。 下载后 , 通过./configure、make 和 makeinstall 三个命令即可安装 pidstat 工具 。 pidstat 的强大之处在于 , 它不仅可以监视进程的性能情况 , 也可以监视线程的性能情况 。 本小节将详细介绍 pidstat 的功能 。
稿源:(未知)
【傻大方】网址:/c/112EL2b2021.html
标题:罗永浩|引人入胜,实战讲解“Java 性能调优六大工具”之 linux 命令行工具( 二 )