本文共 9070 字,大约阅读时间需要 30 分钟。
Linux w命令用于显示目前登入系统的用户信息。
执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序。
单独执行 w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
语法
w [-fhlsuV] [用户名称]参数说明:-f 开启或关闭显示用户从何处登入系统。
-h 不显示各栏位的标题信息列。-l 使用详细格式列表,此为预设值。-s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。-V 显示版本信息。实例显示当前用户w
//显示当前用户,不显示登录位置
19:50:14 up 9:27, 4 users, load average: 0.31, 0.26, 0.18USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot tty7 :0 Thu12 31:39m 10:10 0.60s gnome-sessionroot pts/0 :0.0 17:09 2:18m 15.26s 0.15s bashroot pts/1 192.168.1.17 18:51 1.00s 1.24s 0.14s -bashroot pts/2 192.168.1.17 19:48 60.00s 0.05s 0.05s -bash
不显示登录位置
w -f
19:53:59 up 9:31, 4 users, load average: 0.05, 0.16, 0.15USER TTY LOGIN@ IDLE JCPU PCPU WHATroot tty7 Thu12 31:43m 10:10 0.60s gnome-sessionroot pts/0 17:09 2:21m 15.26s 0.15s bashroot pts/1 18:51 0.00s 1.04s 0.14s -bashroot pts/2 19:48 4:45 0.05s 0.05s -bash
以精简模式显示
w -s19:54:37 up 9:31, 4 users, load average: 0.24, 0.19, 0.16USER TTY FROM IDLE WHATroot tty7 :0 31:43m gnome-sessionroot pts/0 :0.0 2:22m bashroot pts/1 192.168.1.17 0.00s -bashroot pts/2 192.168.1.17 5:23 -bash
不显示标题
w -hroot tty7 :0 Thu12 31:44m 10:10 0.60s gnome-sessionroot pts/0 :0.0 17:09 2:23m 15.26s 0.15s bashroot pts/1 192.168.1.17 18:51 0.00s 1.05s 0.14s -bashroot pts/2 192.168.1.17 19:48 5:54 0.05s 0.05s -bash
• vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
• -a:显示活动内页;-f:显示启动后创建的进程总数;-m:显示slab信息;-n:头信息仅显示一次;-s:以表格方式显示事件计数器和内存状态;-d:报告磁盘状态;-p:显示指定的硬盘分区状态;-S:输出信息的单位• vmstat 监控系统状态• Vmstat 1 每隔1s打印一次Vmstat 1 5 每隔1s打印一次,打印5次[root@radius ~]# vmstat 1 6procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 60408 479876 443120 8139484 0 0 0 49 1 1 0 0 100 0 0 0 0 60408 479920 443120 8139488 0 0 0 36 861 1416 0 0 100 0 0 0 0 60408 479808 443120 8139488 0 0 0 1600 863 1387 0 0 99 0 0 0 0 60408 480316 443120 8139504 0 0 0 40 772 1273 0 1 99 0 0 0 0 60408 480084 443120 8139480 0 0 0 364 744 1226 0 0 100 0 0 0 0 60408 479712 443120 8139480 0 0 0 28 698 1175 0 0 100 0 0
字段说明:
Procs(进程)• r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)• b: 等待IO的进程数量。Memory(内存)• swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。• free: 空闲物理内存大小。• buff: 用作缓冲的内存大小。• cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。Swap• si: 每秒从交换区写到内存的大小,由磁盘调入内存。• so: 每秒写入交换区的内存大小,由内存调入磁盘。注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。IO(现在的Linux版本块的大小为1kb)• bi: 每秒读取的块数• bo: 每秒写入的块数注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。system(系统)• in: 每秒中断数,包括时钟中断。• cs: 每秒上下文切换数。注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。CPU(以百分比表示)• us: 用户进程执行时间百分比(user time)us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。• sy: 内核系统进程执行时间百分比(system time)sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。• wa: IO等待时间百分比wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。• id: 空闲时间百分比• 关键的几列:r,b,swpd,si,so,bi,bo,us,wa
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.92Tasks: 145 total, 2 running, 143 sleeping, 0 stopped, 0 zombieCpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stMem: 4147888k total, 2493092k used, 1654796k free, 158188k buffersSwap: 5144568k total, 56k used, 5144512k free, 2013180k cached
解释:
• top - 09:44:56[当前系统时间],• 16 days[系统已经运行了16天],• 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[用户空间占用CPU百分比],• 0.1%sy[内核空间占用CPU百分比],• 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],• 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],• 0.0%hi[],• 0.0%st[],• Mem: 4147888k total[物理内存总量],• 2493092k used[使用的物理内存总量],• 1654796k free[空闲内存总量],• 158188k buffers[用作内核缓存的内存量]• Swap: 5144568k total[交换区总量],• 56k used[使用的交换区总量],• 5144512k free[空闲交换区总量],• 2013180k cached[缓冲的交换区总量],• yum install -y sysstat
• sar -n DEV 网卡流量• sar -q 系统负• sar -b 磁盘读写• sar -f /var/log/sa/saxx 历史文件Sa 二进制文件只能通过sar命令调用查看Sar 第二天才能看到,可以cat查看sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。语法sar(选项)(参数)选项-A:显示所有的报告信息;-b:显示I/O速率;-B:显示换页状态;-c:显示进程创建活动;-d:显示每个块设备的状态;-e:设置显示报告的结束时间;-f:从指定文件提取报告;-i:设状态信息刷新的间隔时间;-P:报告每个CPU的状态;-R:显示内存状态;-u:显示CPU利用率;-v:显示索引节点,文件和其他内核表的状态;-w:显示交换分区状态;-x:显示给定进程的状态。参数• 间隔时间:每次报告的间隔时间(秒);• 次数:显示报告的次数。实例察看内存和交换空间的使用率:[root@aiker02 ~]# sar -rLinux 3.10.0-514.26.2.el7.x86_64 (aiker02) 04/26/2018 _x86_64_ (1 CPU)12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty12:10:01 AM 75980 1807744 95.97 142196 1424580 297316 15.78 848388 762212 120412:20:01 AM 75328 1808396 96.00 142200 1425140 297316 15.78 849252 761948 66012:30:01 AM 74528 1809196 96.04 142200 1425696 297316 15.78 850040 761728 19212:40:01 AM 71752 1811972 96.19 142200 1428412 297316 15.78 850868 763576 116412:50:01 AM 75308 1808416 96.00 142200 1424864 297316 15.78 843508 767408 77201:00:01 AM 72608 1811116 96.15 142200 1427372 297316 15.78 844344 769108 71201:10:01 AM 71984 1811740 96.18 142200 1427940 297316 15.78 845120 768856 114401:20:01 AM 71140 1812584 96.22 142204 1428492 297316 15.78 845944 768616 48401:30:01 AM 70456 1813268 96.26 142204 1429048 297316 15.78 846752 768384 84801:40:01 AM 70028 1813696 96.28 142204 1429640 297316 15.78 847552 768112 119201:50:01 AM 69056 1814668 96.33 142204 1430168 297316 15.78 848360 767856 29602:00:01 AM 68424 1815300 96.37 142208 1430724 297316 15.78 849192 767632 69202:10:01 AM 90376 1793348 95.20 142216 1407568 303348 16.10 828128 768216 111602:20:01 AM 87560 1796164 95.35 142228 1410176 303348 16.10 829088 769956 36002:30:01 AM 80008 1803716 95.75 142232 1414848 306632 16.28 832644 773748 109202:40:01 AM 73348 1810376 96.11 142232 1415464 315948 16.77 838908 773512 1028
kbmemfree与kbmemused字段分别显示内存的未使用与已使用空间,后面跟着的是已使用空间的百分比(%memused字段)。kbbuffers与kbcached字段分别显示缓冲区与系统全域的数据存取量,单位为KB。
观察系统部件10分钟,并对数据进行排序:sar -o temp 60 10
[root@aiker02 ~]# sar -o temp 60 10Linux 3.10.0-514.26.2.el7.x86_64 (aiker02) 04/26/2018 _x86_64_ (1 CPU)08:55:11 PM CPU %user %nice %system %iowait %steal %idle08:56:11 PM all 0.43 0.00 0.33 0.07 0.00 99.1608:57:11 PM all 0.40 0.00 0.28 0.07 0.00 99.25
yum install -y epel-releaseyum install -y nloadnload
Device eth0 [172.18.111.154] (1/2):===================================================================================Incoming: Curr: 3.66 kBit/s Avg: 6.59 kBit/s Min: 952.00 Bit/s Max: 48.77 kBit/s Ttl: 2.13 GByteOutgoing: Curr: 8.57 kBit/s Avg: 14.32 kBit/s Min: 4.70 kBit/s Max: 52.80 kBit/s Ttl: 865.76 MByte
转载于:https://blog.51cto.com/235571/2108309