性能测试中,常常需要查询linux服务器的信息,这里整理了一些常用的命令
1、top命令
第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
14:48:55 当前时间
up 7 days, 16:41, 系统运行时间,格式为天,时:分
1 user 当前登录用户数
load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二行是进程信息,分别代表进程总数,运行进程数,睡眠进程数,已挂起进程数,无用的进程数。
第三行是CPU信息,分别是us用户空间占用CPU百分比, sy 内核空间占用CPU百分比,ni 用户进程空间内改变过优先级的进程占用CPU百分比, id 空闲CPU百分比, wa 等待输入输出的CPU时间百分比。
第四行是内存信息,分别是物理内存总量, used 使用的物理内存总量, free 空闲内存总量, buffers 用作内核缓存的内存量
第五行是交换区信息,分别是交换区总量, used 使用的交换区总量。 free 空闲交换区总量。cached 缓冲的交换区总量。
2、iostat命令
查询服务器的I/O状态数据,
用法: iostat [-c|-d] [-k] [-t] [间隔描述] [检测次数]-c : 仅显示cpu的状态
-d : 仅显示存储设备的状态,不可以和-c一起使用
-k : 默认显示的是读入读出的block信息,用-k可以改成KB大小来显示
-t : 显示日期
-p device | ALL : device为某个设备或者某个分区,如果使用ALL,就表示要显示所有分区和设备的信息
常用命令:
iostat -d -k 1 10 #查看TPS和吞吐量信息
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态
3、cat /proc/pid/status
查看某个进程的信息,Pid通过ps aux| grep ‘java’ 或top命令得到。
输出解释 Name 应用程序或命令的名字 State 任务的状态,运行/睡眠/僵死/ SleepAVG 任务的平均等待时间(以nanosecond为单位),交互式任务因为休眠次数多、时间长,它们的 sleep_avg 也会相应地更大一些,所以计算出来的优先级也会相应高一些。 Tgid 线程组号 Pid 任务ID Ppid 父进程ID TracerPid 接收跟踪该进程信息的进程的ID号 Uid Uid euid suid fsuid Gid Gid egid sgid fsgid FDSize 文件描述符的最大个数,file->fds Groups VmSize(KB) 任务虚拟地址空间的大小 (total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_vm:进程在预留或特殊的内存间的物理页 VmLck(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘 (locked_vm) VmRSS(KB) 应用程序正在使用的物理内存的大小,就是用ps命令的参数rss的值 (rss) VmData(KB) 程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据; (total_vm-shared_vm-stack_vm) VmStk(KB) 任务在用户态的栈的大小 (stack_vm) VmExe(KB) 程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (end_code-start_code) VmLib(KB) 被映像到任务的虚拟内存空间的库的大小 (exec_lib) VmPTE 该进程的所有页表的大小,单位:kb Threads 共享使用该信号描述符的任务的个数,在POSIX多线程序应用程序中,线程组中的所有线程使用同一个信号描述符。 SigQ 待处理信号的个数 SigPnd 屏蔽位,存储了该线程的待处理信号 ShdPnd 屏蔽位,存储了该线程组的待处理信号 SigBlk 存放被阻塞的信号 SigIgn 存放被忽略的信号 SigCgt 存放被俘获到的信号 CapInh Inheritable,能被当前进程执行的程序的继承的能力 CapPrm Permitted,进程能够使用的能力,可以包含CapEff中没有的能力,这些能力是被进程自己临时放弃的,CapEff是CapPrm的一个子集,进程放弃没有必要的能力有利于提高安全性 CapEff Effective,进程的有效能力
4、jstat -gc pid 1000
查看GC情况的命令。
S0C:年轻代中第一个survivor(幸存区)的容量 (字节) S1C:年轻代中第二个survivor(幸存区)的容量 (字节) S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节) S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节) EC:年轻代中Eden(伊甸园)的容量 (字节) EU:年轻代中Eden(伊甸园)目前已使用空间 (字节) OC:Old代的容量 (字节) OU:Old代目前已使用空间 (字节) PC:Perm(持久代)的容量 (字节) PU:Perm(持久代)目前已使用空间 (字节) YGC:从应用程序启动到采样时年轻代中gc次数