Linux tload命令用法详解:显示系统负载状况 性能监测与优化

Linux tload命令用法详解:显示系统负载状况

tload命令以图形化的方式输出当前系统的平均负载到指定的终端。假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形。 语法 tload(选项)(参数) 选项 -s:指定闲时的刻度; -d:指定间隔的时间(秒)。 参数 终端:指定显示信息的终端设备文件。 实例 使用tload命令查看系统负载情况: tload -d 1 0.08, 0.02,0.01 0.04, 0.01, 0.00 0.04, 0.01, 0.00 0.04, 0.01,0.00 0.06, 0.02, 0.00
阅读全文
Linux lsof命令用法详解:显示Linux系统当前已打开的所有文件列表 性能监测与优化

Linux lsof命令用法详解:显示Linux系统当前已打开的所有文件列表

lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。 在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。 语法 lsof(选项) 选项 -a:列出打开文件存在的进程; -c<进程名>:列出指定进程所打开的文件; -g:列出GID号进程详情; -d<文件号>:列出占用该文件号的进程; +d<目录>:列出目录下被打开的文件; +D<目录>:递归列出目录下被打开的文件; -n<目录>:列出使用NFS的文件; -i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip ) -p<进程号>:列出指定进程号所打开的文件; -u:列出UID号进程详情; -h:显示帮助信息; -v:显示版本信息。 实例 lsof command PID USER FD type DEVICE SIZE NODE NAME init 1 root cwd DIR 8,2 4096 2 / init 1 root rtd DIR 8,2 4096 2 / init 1 root txt REG 8,2 43496 6121706 /sbin/init init 1 root mem REG 8,2 143600 7823908 /lib64/ld-2.5.so init 1 root mem REG 8,2 1722304 7823915 /lib64/libc-2.5.so init 1 root mem REG 8,2 23360...
阅读全文
Linux fuser命令用法详解:使用文件或文件结构识别进程 性能监测与优化

Linux fuser命令用法详解:使用文件或文件结构识别进程

fuser命令用于报告进程使用的文件和网络套接字。fuser命令列出了本地进程的进程号,那些本地进程使用file,参数指定的本地或远程文件。对于阻塞特别设备,此命令列出了使用该设备上任何文件的进程。 每个进程号后面都跟随一个字母,该字母指示进程如何使用文件。 c:指示进程的工作目录。 e:指示该文件为进程的可执行文件(即进程由该文件拉起)。 f:指示该文件被进程打开,默认情况下f字符不显示。 F:指示该文件被进程打开进行写入,默认情况下F字符不显示。 r:指示该目录为进程的根目录。 m:指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存。 语法 fuser(选项)(参数) 选项 -a:显示命令行中指定的所有文件; -k:杀死访问指定文件的所有进程; -i:杀死进程前需要用户进行确认; -l:列出所有已知信号名; -m:指定一个被加载的文件系统或一个被加载的块设备; -n:选择不同的名称空间; -u:在每个进程后显示所属的用户名。 参数 文件:可以是文件名或者TCP、UDP端口号。 实例 要列出使用/etc/passwd文件的本地进程的进程号,请输入: fuser /etc/passwd 要列出使用/etc/filesystems文件的进程的进程号和用户登录名,请输入: fuser -u /etc/filesystems 要终止使用给定文件系统的所有进程,请输入: fuser -k -x -u -c /dev/hd1 或者 fuser -kxuc /home 任一命令都列出了进程号和用户名,然后终止每个正在使用/dev/hd1 (/home)文件系统的进程。仅有root用户能终止属于另一用户的进程。如果您正在试图卸下/dev/hd1文件系统,而一个正在访问/dev/hd1文件系统的进程不允许这样,您可能希望使用此命令。 要列出正在使用已从给定文件系统删除的文件的全部进程,请输入: fuser -d /usr文件 /dev/kmem 用于系统映像。 /dev/mem  也用于系统映像。
阅读全文
Linux top命令用法详解:显示或管理执行中的程序 性能监测与优化

Linux top命令用法详解:显示或管理执行中的程序

top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。 语法 top(选项) 选项 -b:以批处理模式操作; -c:显示完整的治命令; -d:屏幕刷新间隔时间; -I:忽略失效过程; -s:保密模式; -S:累积模式; -i<时间>:设置间隔时间; -u<用户名>:指定用户名; -p<进程号>:指定进程; -n<次数>:循环显示的次数。 top交互命令 在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。 h:显示帮助画面,给出一些简短的命令总结说明; k:终止一个进程; i:忽略闲置和僵死进程,这是一个开关式命令; q:退出程序; r:重新安排一个进程的优先级别; S:切换到累计模式; s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s; f或者F:从当前显示中添加或者删除项目; o或者O:改变显示项目的顺序; l:切换显示平均负载和启动时间信息; m:切换显示内存信息; t:切换显示进程和CPU状态信息; c:切换显示命令名称和完整命令行; M:根据驻留内存大小进行排序; P:根据CPU使用百分比大小进行排序; T:根据时间/累计时间进行排序; w:将当前设置写入~/.toprc文件中。 实例 top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92 Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombie Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 4147888k total, 2493092k used, 1654796k free, 158188k buffers Swap: 5144568k total, 56k used,...
阅读全文
Linux strace命令用法详解:跟踪系统调用和信号 性能监测与优化

Linux strace命令用法详解:跟踪系统调用和信号

strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的。当然strace与专业的调试工具比如说gdb之类的是没法相比的,因为它不是一个专业的调试器。 strace的最简单的用法就是执行一个指定的命令,在指定的命令结束之后它也就退出了。在命令执行的过程中,strace会记录和解析命令进程的所有系统调用以及这个进程所接收到的所有的信号值。 语法 strace [ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ... [ -ofile ] [-ppid ] ... [ -sstrsize ] [ -uusername ] [ -Evar=val ] ... [ -Evar ]... [ command [ arg ... ] ] strace -c [ -eexpr ] ... [ -Ooverhead ] [ -Ssortby ] [ command [ arg... ] ] 选项 -c 统计每一系统调用的所执行的时间,次数和出错的次数等. -d 输出strace关于标准错误的调试信息. -f 跟踪由fork调用所产生的子进程. -ff 如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号. -F 尝试跟踪vfork调用.在-f时,vfork不被跟踪. -h 输出简要的帮助信息. -i 输出系统调用的入口指针. -q 禁止输出关于脱离的消息. -r 打印出相对时间关于,,每一个系统调用. -t 在输出中的每一行前加上时间信息. -tt 在输出中的每一行前加上时间信息,微秒级....
阅读全文
Linux iotop命令用法详解:用来监视磁盘I/O使用状况的工具 性能监测与优化

Linux iotop命令用法详解:用来监视磁盘I/O使用状况的工具

iotop命令是一个用来监视磁盘I/O使用状况的top类工具。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看。 iotop使用Python语言编写而成,要求Python2.5(及以上版本)和Linux kernel2.6.20(及以上版本)。iotop提供有源代码及rpm包,可从其官方主页下载。 安装 Ubuntu apt-get install iotop CentOS yum install iotop 编译安装 wget http://guichaz.free.fr/iotop/files/iotop-0.4.4.tar.gz tar zxf iotop-0.4.4.tar.gz python setup.py build python setup.py install 语法 iotop(选项) 选项 -o:只显示有io操作的进程 -b:批量显示,无交互,主要用作记录到文件。 -n NUM:显示NUM次,主要用于非交互式模式。 -d SEC:间隔SEC秒显示一次。 -p PID:监控的进程pid。 -u USER:监控的进程用户。 iotop常用快捷键: 左右箭头:改变排序方式,默认是按IO排序。 r:改变排序顺序。 o:只显示有IO输出的进程。 p:进程/线程的显示方式的切换。 a:显示累积使用量。 q:退出。 实例 直接执行iotop就可以看到效果了: Total DISK read: 0.00 B/s | Total DISK write: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> command 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init [3] 2 be/4...
阅读全文
Linux uptime命令用法详解:查看Linux系统负载信息 性能监测与优化

Linux uptime命令用法详解:查看Linux系统负载信息

uptime命令能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。 语法 uptime(选项) 选项 -V:显示指令的版本信息。 实例 使用uptime命令查看系统负载: [[email protected] ~]# uptime -V #显示uptime命令版本信息 procps version 3.2.7 [[email protected] ~]# uptime 15:31:30 up 127 days, 3:00, 1 user, load average: 0.00, 0.00, 0.00 显示内容说明: 15:31:30 //系统当前时间 up 127 days,  3:00 //主机已运行时间,时间越大,说明你的机器越稳定。 1 user //用户连接数,是总连接数而不是用户数 load average: 0.00, 0.00, 0.00 // 系统平均负载,统计最近1,5,15分钟的系统平均负载 那么什么是系统平均负载呢? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。 如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。 如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
阅读全文
Linux ltrace命令用法详解:用来跟踪进程调用库函数的情况 性能监测与优化

Linux ltrace命令用法详解:用来跟踪进程调用库函数的情况

ltrace命令是用来跟踪进程调用库函数的情况。 语法 ltrace [option ...] [command [arg ...]] 选项 -a 对齐具体某个列的返回值。 -c 计算时间和调用,并在程序退出时打印摘要。 -C 解码低级别名称(内核级)为用户级名称。 -d 打印调试信息。 -e 改变跟踪的事件。 -f 跟踪子进程。 -h 打印帮助信息。 -i 打印指令指针,当库调用时。 -l 只打印某个库中的调用。 -L 不打印库调用。 -n, --indent=NR 对每个调用级别嵌套以NR个空格进行缩进输出。 -o, --output=file 把输出定向到文件。 -p PID 附着在值为PID的进程号上进行ltrace。 -r 打印相对时间戳。 -s STRLEN 设置打印的字符串最大长度。 -S 显示系统调用。 -t, -tt, -ttt 打印绝对时间戳。 -T 输出每个调用过程的时间开销。 -u USERNAME 使用某个用户id或组ID来运行命令。 -V, --version 打印版本信息,然后退出。 -x NAME treat the global NAME like a library subroutine.(求翻译) 实例 最基本应用,不带任何参数: [[email protected] tmp]$ ltrace ./a.out __libc_start_main(0x80484aa, 1, 0xbfc07744, 0x8048550, 0x8048540 <unfinished ...> printf("no1:%d \t...
阅读全文
Linux free命令用法详解:显示内存的使用情况 性能监测与优化

Linux free命令用法详解:显示内存的使用情况

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。 语法 free(选项) 选项 -b:以Byte为单位显示内存使用情况; -k:以KB为单位显示内存使用情况; -m:以MB为单位显示内存使用情况; -o:不显示缓冲区调节列; -s<间隔秒数>:持续观察内存使用状况; -t:显示内存总和列; -V:显示版本信息。 实例 free -m total used free shared buffers cached Mem: 2016 1973 42 0 163 1497 -/+ buffers/cache: 312 1703 Swap: 4094 0 4094 第一部分Mem行解释: total:内存总数; used:已经使用的内存数; free:空闲的内存数; shared:当前已经废弃不用; buffers Buffer:缓存内存数; cached Page:缓存内存数。 关系:total = used + free 第二部分(-/+ buffers/cache)解释: (-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached (+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。 第三部分是指交换分区。
阅读全文
Linux iostat命令用法详解:监视系统输入输出设备和CPU的使用情况 性能监测与优化

Linux iostat命令用法详解:监视系统输入输出设备和CPU的使用情况

iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。 语法 iostat(选项)(参数) 选项 -c:仅显示CPU使用情况; -d:仅显示设备利用率; -k:显示状态以千字节每秒为单位,而不使用块每秒; -m:显示状态以兆字节每秒为单位; -p:仅显示块设备和所有被使用的其他分区的状态; -t:显示每个报告产生时的时间; -V:显示版号并退出; -x:显示扩展状态。 参数 间隔时间:每次报告的间隔时间(秒); 次数:显示报告的次数。 实例 用iostat -x /dev/sda1来观看磁盘I/O的详细情况: iostat -x /dev/sda1 Linux 2.6.18-164.el5xen (localhost.localdomain) 2010年03月26日 avg-cpu: %user %nice %system %iowait %steal %idle 0.11 0.02 0.18 0.35 0.03 99.31 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda1 0.02 0.08 0.00 2014 4 详细说明:第二行是系统信息和监测时间,第三行和第四行显示CPU使用情况(具体内容和mpstat命令相同)。这里主要关注后面I/O输出的信息,如下所示: 标示 说明 Device 监测设备名称 rrqm/s 每秒需要读取需求的数量 wrqm/s 每秒需要写入需求的数量 r/s  每秒实际读取需求的数量 w/s 每秒实际写入需求的数量 rsec/s 每秒读取区段的数量 wsec/s 每秒写入区段的数量 rkB/s 每秒实际读取的大小,单位为KB wkB/s 每秒实际写入的大小,单位为KB avgrq-sz 需求的平均大小区段 avgqu-sz 需求的平均队列长度 await 等待I/O平均的时间(milliseconds) svctm I/O需求完成的平均时间 %util 被I/O需求消耗的CPU百分比
阅读全文