linux管理员常用命令汇总(1)

Linux系统管理中需要监控Linux服务器的性能, Linux本身提供一些很有用的命令和组件, 几乎所有的Linux发行版都装备了大量的监控工具,这些工具通过获取系统状态从而达到衡量系统健康状况, 系统管理员可以使用这些工具来找到导致系统性能问题的原因。本文列出的命令是一些常用的基本命令,用来分析和调试系统状况,比如:

  性能瓶颈.

  磁盘 (存储) 问题.

  CPU和内存的使用.

  网络性能.

  #1: top – 进程活动状态

  “top” 命令提供运行系统的动态实时视图, 比如: 系统进程, 内存、CPU占用. 缺省状态下, top显示按CPU使用的进程, 每隔5秒更新一次.

  常用热键

  如下为”top”命令常用的热键:

  热键 说明

  t 显示/关闭概括信息.

  m 显示/关闭内存信息.

  A 降序显示占用的系统资源,可以很容易识别消耗系统资源多的进程.

  f 交互模式配置模式, 可以运行一些特定的任务.

  o 允许在top命令窗口交互式选择排序方式 .

  r 对指定进程运行 renice 命令.(优先级)

  k 对指定进程运行 kill 命令(杀死指定的进程)

  z 打开/关闭 彩色/黑白 显示

  => 相关命令: How do I Find Out Linux CPU Utilization?

  #2: vmstat – 系统状态,内存,CPU使用状况

  “vmstat”命令报告系统进程、内存,页面、以及 block IO, traps, CPU的使用状况.

  # vmstat 3

  输出:

  procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

  0  0      0 2540988 522188 5130400    0    0     2    32    4    2  4  1 96  0  0

  1  0      0 2540988 522188 5130400    0    0     0   720 1199  665  1  0 99  0  0

  0  0      0 2540956 522188 5130400    0    0     0     0 1151 1569  4  1 95  0  0

  0  0      0 2540956 522188 5130500    0    0     0     6 1117  439  1  0 99  0  0

  0  0      0 2540940 522188 5130512    0    0     0   536 1189  932  1  0 98  0  0

  0  0      0 2538444 522188 5130588    0    0     0     0 1187 1417  4  1 96  0  0

  0  0      0 2490060 522188 5130640    0    0     0    18 1253 1123  5  1 94  0  0显示内存使用情况

  # vmstat -m

  获取活动/非活动的内存页面状况

  # vmstat -a

  => 相关链接: How do I find out Linux Resource utilization to detect system bottlenecks?

  #3: w – 查看谁登录到系统,并且在做什么事情

  w 命令显示当前登录到系统的用户,以及当前运行的进程/命令.

  # w <用户名>

  # w root

  Sample Outputs:

  [root@smtp ~]# w root

  12:56:52 up 238 days, 13:52,  3 users,  load average: 0.00, 0.00, 0.00

  USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

  root     pts/0    10.10.3.38      12:56   26.00s  0.01s  0.00s vi /etc/hosts

  root     pts/1    10.10.3.38      12:56    0.00s  0.01s  0.00s w root

  root     pts/2    10.10.3.38      12:56    3.00s  0.02s  0.00s top

  #4: uptime – 系统运行时间

  uptime命令可以查看系统已经运行了多长时间,当前登录的用户,以及过去1分钟,5分钟和15分钟的系统负载。

  # uptime

  输出:

  18:02:41 up 41 days, 23:42,  1 user,  load average: 0.00, 0.00, 0.00

  #5: ps – 显示系统进程

  ps 命令会输出当前进程的报告,要输出所有进程,请使用 -A 或 -e 选项:

  # ps -A

  输出:

  PID TTY          TIME CMD

  1 ?        00:00:02 init

  2 ?        00:00:02 migration/0

  3 ?        00:00:01 ksoftirqd/0

  4 ?        00:00:00 watchdog/0

  5 ?        00:00:00 migration/1

  6 ?        00:00:15 ksoftirqd/1

  ....

  .....

  4881 ?        00:53:28 java

  4885 tty1     00:00:00 mingetty

  4886 tty2     00:00:00 mingetty

  4887 tty3     00:00:00 mingetty

  4888 tty4     00:00:00 mingetty

  4891 tty5     00:00:00 mingetty

  4892 tty6     00:00:00 mingetty

  4893 ttyS1    00:00:00 agetty

  12853 ?        00:00:00 cifsoplockd

  12854 ?        00:00:00 cifsdnotifyd

  14231 ?        00:10:34 lighttpd

  14232 ?        00:00:00 php-cgi

  54981 pts/0    00:00:00 vim

  55465 ?        00:00:00 php-cgi

  55546 ?        00:00:00 bind9-snmp-stat

  55704 pts/1    00:00:00 psps is just like top but provides more information.

  长格式输出

  # ps -Al

  超长格式输出:

  # ps -AlF

  查看线程 ( LWP 和 NLWP)

  # ps -AlFH

  查看每个进程的线程

  # ps -AlLm

  查看服务器运行的所有进程

  # ps ax

  # ps axu

  以树状输出进程状态

  # ps -ejH

  # ps axjf

  # pstree

  输出安全信息

  # ps -eo euser,ruser,suser,fuser,f,comm,label

  # ps axZ

  # ps -eM

  按特定用户身份查看进程

  # ps -U root -u root u

  按用户定义的格式输出进程状态

  # ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm

  # ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

  # ps -eopid,tt,user,fname,tmout,f,wchan

  显示某特定的进程ID, 例如:lighttpd

  # ps -C lighttpd -o pid=

  或者

  # pgrep lighttpd

  或者

  # pgrep -u vivek php-cgi

  显示PID 55977的进程名称

  # ps -p 55977 -o comm=

  找出前10个最多占用系统内存的进程

  # ps -auxf | sort -nr -k 4 | head -10

  找出前10个最多占用CPU资源的进程

  # ps -auxf | sort -nr -k 3 | head -10

  #6: free – 内存占用状况

  free命令显示系统物理内存、交换空间以及内核buffer的使用状态。

  # free

  输出:

  total       used       free     shared    buffers     cached

  Mem:      12302896    9739664    2563232          0     523124    5154740

  -/+ buffers/cache:    4061800    8241096

  Swap:      1052248          0    1052248=> 相关命令 :

  Linux Find Out Virtual Memory PAGESIZE

  Linux Limit CPU Usage Per Process

  How much RAM does my Ubuntu / Fedora Linux desktop PC have?

  #7: iostat – 平均CPU 负载,磁盘活动状况

  iostst命令显示CPU的状态以及设备的输入输出, 分区信息以及NFS的状态.

  # iostat

  输出:

  Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009

  avg-cpu:  %user   %nice %system %iowait  %steal   %idle

  3.50    0.09    0.51    0.03    0.00   95.86

  Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

  sda              22.04        31.88       512.03   16193351  260102868

  sda1              0.00         0.00         0.00       2166        180

  sda2             22.04        31.87       512.03   16189010  260102688

  sda3              0.00         0.00         0.00       1615          0=> 相关链接: : Linux Track NFS Directory / Disk I/O Stats

  #8: sar – 查看系统运行状态

  sar命令用来收集、报告以及保存系统的活动信息,例如,查看网络计数,输入:

  # sar -n DEV | more

  显示自24th以来的网络计数:

  # sar -n DEV -f /var/log/sa/sa24 | more

  使用sar显示实时使用状态:

  # sar 4 5

你可能感兴趣的:(linux系统)