文档库 最新最全的文档下载
当前位置:文档库 › linux 监控命令ps 与top详解

linux 监控命令ps 与top详解

linux 监控命令ps 与top详解
linux 监控命令ps 与top详解

一:ps

ps -l 查看属于自己这次登录的PID与相关信息列出来(只与自己的bash有关)

F:代表这个进程标志(process flags),说明这个进程的权限,常见号码有:若为4表示此进程的权限为root;

若为1则表示此子进程仅可进行复制(fork)而无法执行(exec);

S:代表这个进程的状态(STAT),主要的状态有:

R(Running):该进程正在运行中;

S(Sleep):该进程目前正在睡眠状态(idle),但可以被唤醒(signal);

D:不可被唤醒的状态,通常这个进程可能在等待I/O的情况(ex>打印);

T:停止状态(stop),可能是在工作控制(后台暂停)或出错(traced)状态;

Z(Zombie):“僵尸”状态,该进程已经终止但却无法被删除至内存外。

UID/PID/PPID:代表此进程被该UID所拥有的/进程的PID号码/此进程的父进程PID号码。

C:代表CPU使用率,单位为百分比。

PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级,数值越小代表此进程越快被CPU执行。

ADDR/SZ/WCHAN:都与内存有关,ADDR是kernel function,指出该进程在内存的哪个部分,如果是个running的进程,一般会显示“—”。SZ代表此进程用掉多少内存。WCHAN表示目前进程是否在运行中,同样,若为“—”表示正在运行中。

TTY:登录者的终端位置,若为远程登录使用动态终端接口(pts/n)。

TIME:使用CPU的时间,注意,是此进程实际花费CPU运行的时间,而不是系统时间。CMD:就是command的缩写,造成此程序的触发进程的命令为何。

ps aux 查看系统所有进程数据(静态)

USER:该进程属于哪个用户账号的;

PID:该进程的进程标识符;

%CPU:该进程使用掉的CPU资源百分比;

%MEM:该进程所占用的物理内存百分比;

VSZ:该进程所占用的虚拟内存量(KB);

RSS:该进程所占用的固定的内存量(KB);

TTY:该进程在哪个终端机上面运行,若与终端机无关则显示?另外,tty1~tty6是本机上面的登录者程序,若为pts/0等的,则表示为由网络连接进主机的进程;STAT:该进程目前的状态,状态显示与ps -l的S标识相同(R/S/T/Z);

TIME:该进程实际使用CPU的时间;

COMMAND:该进程的实际命令。

二:top (动态)

统计信息区前五行是系统整体的统计信息。

第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

02:44:02 当前时间

up 21 days ,2:12 开机到目前为止所经过的时间

3 users 当前登录用户数

0.56, 0.23, 0.32 系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

第二行为进程信息,内容如下:

Tasks: 113 total 进程总数

1 running 正在运行的进程数

112sleeping 睡眠的进程数

0 stopped 停止的进程数

0 zombie 僵尸进程数

第三行为CPU信息,当有多个CPU时,这些内容可能会超过两行。内容如下:

Cpu(s): 0.0%us 用户空间占用CPU百分比

0.0% sy 内核空间占用CPU百分比

0.0% ni 用户进程空间内改变过优先级的进程占用CPU

百分比

0.0% id 空闲CPU百分比

0.0% wa 等待输入输出(IO)的CPU时间百分比

0.0% hi cpu处理硬件中断的时间;

0.0% si cpu处理软中断的时间;

第四行为内存信息,内容如下:

Mem: 1034872k total 物理内存总量

974264k used 使用的物理内存总量

60608k free 空闲内存总量

226140k buffers 用作内核缓存的内存量

第五行为SWAP信息

Swap: 1534072k total 交换区总量

0used 使用的虚拟内存总量

1534072k free 空闲交换区总量

548268k cached 缓冲的交换区总量。

第六行往后是进程列表,常见的这几列的意义分别为:

PID(进程号), USER(运行用户),PR(优先级),NI(任务nice值),VIRT(虚拟内

存用量),RES(物理内存用量), SHR(共享内存用量),S(进程状态),%CPU(CPU占用比),%MEM(内存占用比),TIME+(累计CPU占用时间)。

除了这些信息之外,top还提供了很多命令能帮我们更好的解读这些信息,例如按”M”键可以按内存用量进行排序;

按”P”可以按CPU使用量进行排序,这样一来对于分析系统瓶颈很有帮助;此外,

按“f”可以进入交互页面,选择指定的列显示;

”r”可以改变一个进程的nice值;”k”可以向一个进程发信号;

”z”可以使用彩色显示。进程信息区统计信息区域的下方显示了各个进程的详细信息。

首先来认识一下各列的含义。

序号列名含义

a PID 进程id

b PPID 父进程id

c RUSER Real user name

d UID 进程所有者的用户id

e USER 进程所有者的用户名

f GROUP 进程所有者的组名

g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?

h PR 优先级

i NI nice值。负值表示高优先级,正值表示低优先级

j P 最后使用的CPU,仅在多CPU环境下有意义

k %CPU 上次更新到现在的CPU时间占用百分比

l TIME 进程使用的CPU时间总计,单位秒

m TIME+ 进程使用的CPU时间总计,单位1/100秒

n %MEM 进程使用的物理内存百分比

o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。

q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

r CODE 可执行代码占用的物理内存大小,单位kb

s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

t SHR 共享内存大小,单位kb

u nFLT 页面错误次数

v nDRT 最后一次写入到现在,被修改过的页面数。

w S 进程状态。

x COMMAND 命令名/命令行

y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名

z Flags 任务标志,参考 sched.h

D=不可中断的睡眠状态

R=运行

S=睡眠

T=跟踪/停止

Z=僵尸进程

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、% CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

Linux常用命令

查询相关 find 按规则查找某个文件或文件夹,包括子目录 ?find . -name '*.sh' -- 以.sh结尾的文件 ?find . -name '*channel*' -- 包含channel字符的文件 ?find . -name 'build*' -- 以build开头的文件 ?find . -name 'abc??' -- abc后面有两个字符的文件 grep 查找内容包含指定的范本样式的文件,Global Regular Expression Print ?grep -n pattern files -- 规则-n表示显示行号 ?grep -n 'PostsActivity' AndroidManifest.xml ?grep -n '\d' AndroidManifest.xml ?grep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方 ?grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显示行号 ?ps -e | grep java -- 所有java进程 ?ps -e | grep -i qq --所有qq进程,不区分大小写 ?find . -name '*channel.xml' | xargs grep -n 'aapt' -- 在以channel.xml 结尾的文件中查找包含‘aapt’关键字的地方 ?ls | grep 'channel' -- 包含channel关键字的文件 which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果?which zip ?which grep 查看命令 tail tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File] 从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。 ?tail -f test.log,循环查看文件内容,Ctrl+c来终止 ?tail -n 5 test.log,显示文件最后5行内容

Linux top 命令详解

Linux top 命令详解 top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。 本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。 top进入视图 top视图01 【top视图01】是刚进入top的基本视图,我们来结合这个视图讲解各个数据的含义。 第一行: 10:01:23 —当前系统时间 126 days, 14:29 —系统已经运行了126天14小时29分钟(在这期间没有重启过) 2 users —当前有2个用户登录系统 load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。 第二行: Tasks —任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped 状态的有0个,zombie状态(僵尸)的有0个。

第三行:cpu状态 6.7% us —用户空间占用CPU的百分比。 0.4% sy —内核空间占用CPU的百分比。 0.0% ni —改变过优先级的进程占用CPU的百分比 92.9% id —空闲CPU百分比 0.0% wa — IO等待占用CPU的百分比 0.0% hi —硬中断(Hardware IRQ)占用CPU的百分比 0.0% si —软中断(Software Interrupts)占用CPU的百分比 在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。 第四行:内存状态 8306544k total —物理内存总量(8GB) 7775876k used —使用中的内存总量(7.7GB) 530668k free —空闲内存总量(530M) 79236k buffers —缓存的内存量(79M) 第五行:swap交换分区 2031608k total —交换区总量(2GB) 2556k used —使用的交换区总量(2.5M) 2029052k free —空闲交换区总量(2GB) 4231276k cached —缓冲的交换区总量(4GB) 这里要说明的是不能用windows的内存概念理解这些数据,如果按windows的方式此台服务器“危矣”:8G的内存总量只剩下530M的可用内存。Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只是简单说点和我们传统概念(windows)的不同。 第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。 如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:530668+79236+4231276 = 4.7GB。 对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。 第六行是空行 第七行以下:各进程(任务)的状态监控 PID —进程id USER —进程所有者 PR —进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT —进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES —进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA SHR —共享内存大小,单位kb

Linux终端下使用ifconfig命令出错:ifconfig command not found解决方法

Linux终端下使用ifconfig命令出错“bash ifconfig command not found “解决方法 ?平台信息:FAQ适用于linux环境。 ?适用对象:爱数技术人员/客户/代理商技术人员。 ?文档类型:FAQ。 问题描述 打开linux终端,输入ifconfig,显示ifconfig:command not found ,su root,还是不可以。如下图所示: 分析问题 主要是一些用在系统管理上的命令,例如ifconfig, route等等,他们位于/sbin, 或/usr/sbin/下。其实这些命令本身就没有任何问题,软件包早已安装完毕,路径设置也没有丝毫问题。而出现Command not found的原因在于:在终端使用su变成超级用户的时候没有将root的路径(环境)一起切换过来,从而导致身份虽然已经是root,但是工作的环境和路径依旧是普通用户的。 解决方案 方案一:最直接的办法是使用su - ,root的路径会一起跟着变过来,就可以运用ifconfig进行网络配置等操作。如下图所示:

方案二:在root用户下按照下面的操作进行修改文件,重新启动或者注销系统,再输入ifconfig就可以直接配置网络了。操作如下: [oracle@rhel4ora10g ~]$ su [root@rhel4ora10g oracle]# vi /etc/profile 把下面if语句注释掉: #path Manipulation if [`id -u` = 0]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin fi 修改为: #path Manipulation #if [`id -u` = 0]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin #fi

Linux主要shell命令详解

shell是用户和Linux操作系统之间的接口。Linux中有多种shell,其中缺省使用的是Bash。本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性。 什么是shell Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell 就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。 shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。 有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。 shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。 shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。 当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用―$‖作提示符,对超级用户(root)用―#‖作提示符。 一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。

ifconfig网卡内容详解

一、命令:ifconfig eth6 Link encap:EthernetHWaddr 00:E0:ED:29:91:02 inet addr:192.168.53.206 Bcast:192.168.53.207 Mask:255.255.255.252 inet6addr: fe80::2e0:edff:fe29:9102/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:730143989490 errors:0 dropped:0 overruns:53397868 frame:0 TX packets:738432898210 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:78921752346272 (71.7 TiB) TX bytes:275903597565877 (250.9 TiB) Memory:df8a0000-df8c0000 Link encap 接口的概要描述。 HWaddr 网卡的硬件MCA地址。 inetaddr 网卡的IP地址。 Bcast 广播地址。 Mask 网络掩码。 UP 表示“接口已启用”。 BROADCAST 表示“主机支持广播”。 RUNNING 表示“接口在工作中”。 MULTICAST 表示“主机支持多播”。 MTU 见上上表。 Metric 见上上表。(同“Met”) RX packets 接收时,正确的数据包数。 RX errors 接收时,产生错误的数据包数。 RX dropped 接收时,丢弃的数据包数。 RX overruns 接收时,由于过速而丢失的数据包数。 RX frame 接收时,发生frame错误而丢失的数据包数。 (以太网是一种共享媒体(shared medium),所以必须要有机制来决定由谁来使用传输媒体,在以太网中所采用的是CSMA/CD(Carrier Sense Multiple Access with Collision Detection)方式,步骤如下: 1 将要传输的数据切割成Frame,作为传输单位。 2 要传输时先侦测电缆上是否有设备送Frame(Carrier Sense)。 3 若沒有设备使用,才准备发送Frame,并侦测是否有另外的设备发送Frame(Collision

linux高级监控工具sinfo

Sinfo Sinfo是一款监视工具,使用广播方案来发布关于你本地网络上每一台计算机的运行状况的信息。它支持显示多方面的内容,比如处理器、内存使用情况、网络负载以及关于每一台计算机上五个主要进程的信息。Sinfo使用ncurses,以一目了然的方式来显示信息。 Sinfo可以显示关于多台计算机的系统信息,以便管理。使用的时候可以通过-s选项查看更多信息。 安装过程 如果你使用基于Debian的系统,比如Debian和Ubuntu等系统,可以使用二进制包,可以在你的repo中找一下。考虑到该软件包括了一个启动守护程序sinfod,我强烈建议使用这个可选的二进制文件,因为这个过程的许多方面实现了自动化(它也是我在这里探讨的版本)。不过,为了确保发行版中立,与往常一样,我还在安装过程中介绍了源版本。 说明文档对代码库的要求如下: ?ncurses:用于终端处理的代码库(5.7版本)。 ?boost:可移植的C++源代码库,使用Boost.Bind和Boost.Signals(1.42版本)。 ?asio (>=1.1.0):asio是一个跨平台的C++代码库,用于网络编程(1.4.1版本)。 如果你通过源代码编译,还需要上面这些代码库的开发包(-dev)。libboost-下的开发包的数量相当多,所以要是你在编译过程中遇到了任何问题,请先检查libboost是不是安装全了。 对于使用源代码来运行的那些人来说,一旦你搞定了代码库要求,就可以获取最新的tarball文件(下载地址)。解压缩,在新的文件夹中打开终端,输入以下命令: $ ./configure $ make 如果你的发行版使用sudo: $ sudo make install

linux常用的60个命令

Linux必学的60个命令 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup; ◆系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。

基本网络配置命令

即用即查L i n u x命令行实例参考手册代码 第13章基本网络配置命令 配置或显示网络设备——ifconfig ifconfig命令语法: ifconfig [网络设备] [IP地址] [参数] 实例1:显示安装在本地主机的第一块以太网卡eth0的状态,执行命令: [root@localhost ~]# ifconfig eth0 实例2:配置本地主机回送接口。执行命令: 实例3:显示本地主机上所有网络接口的信息,包括激活和非激活的,执行命令: [root@localhost ~]# ifconfig 在设置eth0网络接口之前,首先显示本地主机上所有网络接口的信息。执行命令: [root@localhost ~]# ifconfig 实例5:启动/关闭eth0网络接口。 在eth0网络接口禁用之前,首先显示本地主机上所有网络接口的信息。执行命令: [root@localhost ~]# ifconfig 然后执行禁用eth0网络接口命令: [root@localhost ~]# ifconfig eth0 down [root@localhost ~]# ifconfig 再次显示本地主机上所有网络接口的信息,以便比较分析禁用eth0网络接口命令的作用。 为了进一步深入了解,可以测试ping该网络接口。执行命令: 命令重新启动该网络接口。 [root@localhost ~]# ifconfig eth0 up 实例6:为eth0网络接口添加一个IPv6地址fe80::20c::29ff:fe5f:ba3f/64。 在为eth0网络接口添加IPv6地址之前,首先显示本地主机上所有网络接口的信息。执行命令:[root@localhost ~]# ifconfig 然后执行ping6命令检测未添加IPv6地址fe80::20c::29ff:fe5f:ba3f/64之前eth0网络接口的状况:[root@localhost ~]# ping6 –I eth0 –c 4 fe80::20c::29ff:fe5f:ba3f 接下来为eth0网络接口添加一个IPv6地址fe80::20c::29ff:fe5f:ba3f/64,执行命令: [root@localhost ~]# ifconfig eth0 add fe80::20c:29ff:fe5f:ba3f 再次执行ping6命令检测IPv6地址fe80::20c::29ff:fe5f:ba3f : [root@localhost ~]# ping6 –I eth0 –c 4 fe80::20c:29ff:fe5f:ba3f 再次显示本地主机上所有网络接口的信息,以便比较分析eth0网络接口添加IPv6地址前后发生的变化。 [root@localhost ~]# ifconfig 查看或设置网络接口——ifup、ifdown ifup、ifdown命令语法: ifup [网络设备] ifdown [网络设备] 实例1:关闭eth0网络接口。

Linux命令大全完整版

Linux命令大全完整版 目录 目录........................................................................................................................................... I 1. linux系统管理命令 (1) adduser (1) chfn(change finger information) (1) chsh(change shell) (1) date (2) exit (3) finger (4) free (5) fwhois (5) gitps(gnu interactive tools process status) (5) groupdel(group delete) (6) groupmod(group modify) (6) halt (7) id (7) kill (8) last (8) lastb (8) login (9) logname (9) logout (9) logrotate (9) newgrp (10) nice (10) procinfo(process information) (11) ps(process status) (11) pstree(process status tree) (14) reboot (15)

rlogin(remote login) (16) rsh(remote shell) (16) rwho (16) screen (17) shutdown (17) sliplogin (18) su(super user) (18) sudo (19) suspend (19) swatch(simple watcher) (20) tload (20) top (21) uname (21) useradd (22) userconf (22) userdel (23) usermod (23) vlock(virtual console lock) (24) w (24) who (25) whoami (25) whois (25) 2. linux系统设置命令 (27) alias (27) apmd(advanced power management BIOS daemon) (27) aumix(audio mixer) (27) bind (29) chkconfig(check config) (29) chroot(change root) (30)

(整理)linux系统监控性能评估.

总控服务器性能: 一、Cpu性能评估 Vmstat命令的参数解释: 对上面每项的输出解释如下: procs r列表示运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU 不足,需要增加CPU。? b列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。 Memory swpd列表示切换到内存交换区的内存数量(以k为单位)。如果swpd的值不为0,或者比较大,只要si、so的值长期为0,这种情况下一般不用担心,不会影响系统性能。 free列表示当前空闲的物理内存数量(以k为单位)? buff列表示buffers cache的内存数量,一般对块设备的读写才需要缓冲。 cache列表示page cached的内存数量,一般作为文件系统cached,频繁访问的文件都会被cached,如果cache值较大,说明cached的文件数较多,如果此时IO中bi比较小,说明文件系统效率比较好。 swap si列表示由磁盘调入内存,也就是内存进入内存交换区的数量。 so列表示由内存调入磁盘,也就是内存交换区进入内存的数量。 一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存。? IO项显示磁盘读写状况? Bi列表示从块设备读入数据的总量(即读磁盘)(每秒kb)。 Bo列表示写入到块设备的数据总量(即写磁盘)(每秒kb) 这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大,则表示系统磁盘IO有问题,应该考虑提高磁盘的读写性能。 system 显示采集间隔内发生的中断数 in列表示在某一时间间隔中观测到的每秒设备中断数。 cs列表示每秒产生的上下文切换次数。 上面这2个值越大,会看到由内核消耗的CPU时间会越多。 CPU项显示了CPU的使用状态,此列是我们关注的重点。 us列显示了用户进程消耗的CPU 时间百分比。us的值比较高时,说明用户进程消耗的cpu 时间多,但是如果长期大于50%,就需要考虑优化程序或算法。 sy列显示了内核进程消耗的CPU时间百分比。Sy的值较高时,说明内核消耗的CPU资源很多。 根据经验,us+sy的参考值为80%,如果us+sy大于 80%说明可能存在CPU资源不足。 id 列显示了CPU处在空闲状态的时间百分比。 wa列显示了IO等待所占用的CPU时间百分比。 wa值越高,说明IO等待越严重,根据经验,wa的参考值为20%,如果wa超过20%,说明IO等待严重,引起IO等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者磁盘控制器的带宽瓶颈造成的(主要是块操作)。综上所述,在对CPU的评估中,需要重点注意

Ifconfig

Ifconfig ⑴基础知识 ifconfig 命令被用来: ①为一个网卡分配一个IP地址 ②设置本地环路界面 ③分配一个子网掩码(可选) 这个命令在系统启动的时候通过/sbin/init.d/net脚本自动执行的。也可以在任何时候以命令行的方式执行。 Usage: ifconfig interface addr_family [address] [ parameters] Options: interface 一个最大四位的字符串,最后一个字符是数字,例如lan0。这个字符串代表网卡。数字表示网卡的instance。对有的系统来说,网卡的instance是自动分配的。首先配置的网卡是lan0。而lo0指明这是本地回路。 add_family 对DARPA Internet协议来说,唯一支持的是inet(默认的)。 address 数字形式的IP地址 parameters 最重要的参数是up,down,arp,-arp,和netmask。 up 激活这个网卡 down 关闭这个网卡 [-] arp 在OSI模型的第二层和第三层(链路层和网络层)之间禁用/使用地址解析协议netmask subnet 子网位掩盖网络部分。并指明了在将网络分割为子网的时候所保留地址的数量,一般也用数字形式。 -a 详细显示所有接口 -u 显示目前使用中的装置 ⑵实例 ①检查网络接口 例如: *检查所有网络接口的状态: # ifconfig –a lo0: flags=849; mtu 8232 inet 127.0.0.1 netmask ff000000 le0: flags=863;mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255 ether 8:0:20:75:6e:6f *检查一个接口的状态: # ifconfig le0 le0: flags=863;mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255 ether 8:0:20:75:6e:6f 各字段含义: lo0,le0——网络接口的设备名

性能测试-linux资源监控

目录: Linux硬件基础 CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制。 CPU:CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。 查询指令:cat /proc/cpuinfo 内存:大脑中的记忆区块,将皮肤、眼睛等所收集到的信息记录起来的地方,以供CPU 进行判断。 内存:影响内存的性能主要是内存主频、内容容量。 查询指令:cat /proc/meminfo 硬盘:大脑中的记忆区块,将重要的数据记录起来,以便未来再次使用这些数据。 硬盘:容量、转速、平均访问时间、传输速率、缓存。 查询指令:fdisk -l (需要root权限) Linux监控命令 linux性能监控分析命令 vmstat vmstat使用说明 vmstat可以对操作系统的内存信息、进程状态、CPU活动、磁盘等信息进行监控,不足之处是无法对某个进程进行深入分析。 vmstat [-a] [-n] [-S unit] [delay [ count]] -a:显示活跃和非活跃内存 -m:显示slabinfo -n:只在开始时显示一次各字段名称。 -s:显示内存相关统计信息及多种系统活动数量。 delay:刷新时间间隔。如果不指定,只显示一条结果。 count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。-d:显示各个磁盘相关统计信息。 Sar sar是非常强大性能分析命令,通过sar命令可以全面的获取系统的CPU、运行队列、磁盘I/O、交换区、内存、cpu中断、网络等性能数据。 sar 命 令行

Linux常用命令详解(配合示例说明,清晰易懂)

Linux常用命令详解 (常用、详细) BISTU 自动化学院 刷碗小工(frisen.imtm) 2010年11月 开源社区,造福大家,版权所有,翻录不究(初次接触Linux命令可能对以下说明有不少疑问,可待看完一遍后再回头细看) (配合Ctrl + F可快速查找你想了解的命令)

索引:(待完善) 文件说明:Linux命令很多,但最常用的80个左右 文档内容充实,用示例说明命令如何使用笔者力求语言简洁,清晰易懂 由于忙于其他事情,改进排版的工作只能搁置了 最后,望此文档能为大家Linux学习之路献微薄之力 一、路径: 执行命令前必须要考虑的一步是命令的路径,若是路径错误或是没有正确的指定,可能导致错误的执行或是找不到该命令。要知道设置的路径,可执行以下命令: 一般而言,本书的命令位于/bin、usr/bin、/sbin、/usr/sbin之中。若读者执行了命令却出现“command not find”或是“命令不存在”的字样,就必须要确定该命令的位置是否在命令的路径中,或是系统上根本没有安装该套件。 二、命令顺序: 若在shell内置的命令/bin以及/usr/bin之下都出现了命令pwd,那当我们执行该命令时,会执行哪一个?答案是第一优先执行shell内置的命令,再执行路径中的设置;因此若有相同名称的命令时,必须要注意顺序设置,或是直接输入完整路径。 三、参数(或称选项)顺序: 一般除了特殊情况,参数是没有顺序的。举例而言,输入“–a –v”与输入“–v –a”以及“–av”的执行效果是相同的。但若该参数后指定了要接的文件或特殊对象,如“–a cmd1 –v cmd2”,则不能任意改变选项顺序。 四、常用参数: 下面所列的是常见的参数(选项)意义: --help,-h 显示帮助信息 --version,-V 显示版本信息 -v 繁琐模式(显示命令完整的执行过程) -i 交谈模式(指定界面) -l 长列表输出格式 -q,-s 安静模式(不显示任何输出或错误信息) -R 递归模式(连同目录下所有文件和子目录一起处理) -z 压缩 五、命令的结合与定向: 命令中除了一般命令外,还有管道(或称途径)(|)与定向(>或>>)。 管道(途径)的用法: “命令一[选项]”| “命令二[选项]”,也就是将“命令一[选项]”的输出结果传到“命令二[选项]”,通过命令二的处理之后才输出到标准输出(屏幕)上。比如“ls /etc”会列出etc下的所有文件,若加上“| less”,也就是“ls /etc | less”,则会将“ls /etc”的结果通过less分页输出。 定向的用法: 将结果定向到命令的输出设备,一般不加文件名意为将结果输出到屏幕,若是在定向后加上文件名,则会将命令的执行结果输出到定向的文件,例如“ls > temp.txt”,就会将ls 的结果输出到文件temp.txt中。“>”与“>>”的差异在于前者是覆盖,而后者是附加。 六、命令中的命令: 许多命令在执行后,会进入该命令的操作模式,如fdisk、pine、top等,进入后我们必须要使用该命令中的命令,才能正确执行;而一般要退出该命令,可以输入exit、q、quit或是按【Ctrl+C】组合

基本网络配置命令

即用即查Linux命令行实例参考手册代码 第13章基本网络配置命令 配置或显示网络设备——ifconfig ifconfig命令语法: ifconfig [网络设备] [IP地址] [参数] 实例1:显示安装在本地主机的第一块以太网卡eth0的状态,执行命令: [root@localhost ~]# ifconfig eth0 实例2:配置本地主机回送接口。执行命令: [root@localhost ~]# ifconfig lo inet 127.0.0.1 up 实例3:显示本地主机上所有网络接口的信息,包括激活和非激活的,执行命令: [root@localhost ~]# ifconfig 实例4:配置eth0网络接口的IP为192.168.1.108。 在设置eth0网络接口之前,首先显示本地主机上所有网络接口的信息。执行命令:[root@localhost ~]# ifconfig 然后设置eth0网络接口,ip为192.168.1.108,netmask为255.255.255.0,broadcast为192.168.1.255。执行命令: [root@localhost ~]# ifconfig eth0 192.168.1.108 netmask 255.255.255.0 broadcast 192.168.1.255 实例5:启动/关闭eth0网络接口。 在eth0网络接口禁用之前,首先显示本地主机上所有网络接口的信息。执行命令:[root@localhost ~]# ifconfig 然后执行禁用eth0网络接口命令: [root@localhost ~]# ifconfig eth0 down [root@localhost ~]# ifconfig 再次显示本地主机上所有网络接口的信息,以便比较分析禁用eth0网络接口命令的作用。 为了进一步深入了解,可以测试ping该网络接口。执行命令: [root@localhost ~]# ping 192.168.1.108 此时应该ping不通主机192.168.1.108。接下来可以执行如下命令重新启动该网络接口。 [root@localhost ~]# ifconfig eth0 up 实例6:为eth0网络接口添加一个IPv6地址fe80::20c::29ff:fe5f:ba3f/64。 在为eth0网络接口添加IPv6地址之前,首先显示本地主机上所有网络接口的信息。执行命令: [root@localhost ~]# ifconfig 然后执行ping6命令检测未添加IPv6地址fe80::20c::29ff:fe5f:ba3f/64之前eth0网络接口的状况: [root@localhost ~]# ping6 –I eth0 –c 4 fe80::20c::29ff:fe5f:ba3f 接下来为eth0网络接口添加一个IPv6地址fe80::20c::29ff:fe5f:ba3f/64,执行命令:[root@localhost ~]# ifconfig eth0 add fe80::20c:29ff:fe5f:ba3f

Unix,Linux 磁盘 IO 性能监控命令

Unix/Linux 磁盘I/O 性能监控命令 磁盘I/O 性能监控指标和调优方法 在介绍磁盘I/O 监控命令前,我们需要了解磁盘I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能。磁盘I/O 性能监控的指标主要包括: 指标1:每秒I/O 数(IOPS 或tps) 对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘I/O, 磁盘的IOPS 就是每秒磁盘连续读次数和连续写次数之和。当传输小块不连续数据时,该指标有重要参考意义。 指标2:吞吐量(Throughput) 指硬盘传输数据流的速度,传输数据为读出数据和写入数据的和。其单位一般为Kbps, MB/s 等。当传输大块不连续数据的数据,该指标有重要参考作用。 指标3:平均I/O 数据尺寸 平均I/O 数据尺寸为吞吐量除以I/O 数目,该指标对揭示磁盘使用模式有重要意义。一般来说,如果平均I/O 数据尺寸小于32K,可认为磁盘使用模式以随机存取为主;如果平均每次I/O 数据尺寸大于 32K,可认为磁盘使用模式以顺序存取为主。 指标4:磁盘活动时间百分比(Utilization) 磁盘处于活动时间的百分比,即磁盘利用率,磁盘在数据传输和处理命令(如寻道)处于活动状态。磁盘利用率与资源争用程度成正比,与性能成反比。也就是说磁盘利用率越高,资源争用就越严重,性能也就越差,响应时间就越长。一般来说,如果磁盘利用率超过70%,应用进程将花费较长的时间等待I/O 完成,因为绝大多数进程在等待过程中将被阻塞或休眠。 指标5:服务时间(Service Time) 指磁盘读或写操作执行的时间,包括寻道,旋转时延,和数据传输等时间。其大小一般和磁盘性能有关,CPU/ 内存的负荷也会对其有影响,请求过多也会间接导致服务时间的增加。如果该值持续超过20ms,一般可考虑会对上层应用产生影响。 指标6:I/O 等待队列长度(Queue Length) 指待处理的I/O 请求的数目,如果I/O 请求压力持续超出磁盘处理能力,该值将增加。如果单块磁盘的队列长度持续超过2,一般认为该磁盘存在I/O 性能问题。需要注意的是,如果该磁盘为磁盘阵列虚拟的逻辑驱动器,需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目,以获得平均单块硬盘的I/O 等待队列长度。 指标7:等待时间(Wait Time) 指磁盘读或写操作等待执行的时间,即在队列中排队的时间。如果I/O 请求持续超出磁盘处理能力,意味着来不及处理的I/O 请求不得不在队列中等待较长时间。 通过监控以上指标,并将这些指标数值与历史数据,经验数据以及磁盘标称值对比,必要时结合CPU、内存、交换分区的使用状况,不难发现磁盘I/O 潜在或已经出现的问题。但如果避免和解决这些问题呢?这就需要利用到磁盘I/O 性能优化方面的知识和技术。限于本文主题和篇幅,仅列出一些常用的优化方法供读者参考: 1.调整数据布局,尽量将I/O 请求较合理的分配到所有物理磁盘中。 2.对于RAID 磁盘阵列,尽量使应用程序I/O 等于条带尺寸或者为条带尺寸的倍数。并选取合适 的RAID 方式,如RAID10,RAID5。 3.增大磁盘驱动程序的队列深度,但不要超过磁盘的处理能力,否则,部分I/O 请求会因为丢失 而重新发出,这将降低性能。 4.应用缓存技术减少应用存取磁盘的次数,缓存技术可应用在文件系统级别或者应用程序级别。

Linux基本命令大全

下面我们来介绍常用基本命令 一、注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost root]#logout Red Hat Linuxrelease 9(Shike) Kernel 2.4.20.8 on an i686 Login: ←回到登陆的画面 2,关机或重新启动的shutdown命令 Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。 参数说明如下: λ立即关机:-h 参数让系统立即关机。范例如下: [root@localhost root]#shutdown –h now ←要求系统立即关机 λ指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下: [root@localhost root]#shutdown now ←立刻关机 [root@localhost root]#shutdown +5 ←5分钟后关机 [root@localhost root]#shutdown 10:30 ←在10:30时关机 关机后自动重启:-rλ参数设置关机后重新启动。范例如下: [root@localhost root]#shutdown -r now ←立刻关闭系统并重启 [root@localhost root]#shutdown -r 23:59 ←指定在23:59时重启动 3,重新启动计算机的reboot命令 顾名思义,reboot命令是用来重新启动系统的。常用的参数如下: λ-f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。 -Iλ参数:在在重新启动之前关闭所有网络接口。 虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了 二、文件与目录的操作 列出文件列表的ls命令 1,ls(list)命令是非常有用的命令,用来显示当前目录中的文件和子目录列表。配合参数的使用,能以不同的方式显示目录内容。范例如下: ? 显示当前目录的内容: [tony@free tony]$ ls Desktop mail myinstall.log test.txt ←有两个目录及两个文件夹 ? 当运行ls命令时,并不会显示名称以―.‖开头的文件。因此可加上―-a‖参数指定要列出这些文件。范例如下: [tony@free tony]$ ls –a ? 以―-s‖参数显示每个文件所有的空间,并以―-S‖参数指定按所有占用空间的大小排序。范例如下: [tony@free tony]$ ls –s –S 总计36 4 Desktop 4 mail 24 myinstall.log 4 test.txt ? 在ls命令后直接加上欲显示的目录路径,就会列出该目录的内容。范例如下: [tony@free tony]$ ls –l/usr/games 2,切换目录的cd命令

Linux查看系统命令

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所有USB设备 # lsmod # 列出加载的内核模块 # env # 查看环境变量 资源 # free -m # 查看内存使用量和交换区使用量 # df -h # 查看各分区使用情况 # du -sh <目录名> # 查看指定目录的大小 # grep MemTotal /proc/meminfo # 查看内存总量 # grep MemFree /proc/meminfo # 查看空闲内存量 # uptime # 查看系统运行时间、用户数、负载# cat /proc/loadavg # 查看系统负载 磁盘和分区 # mount | column -t # 查看挂接的分区状态 # fdisk -l # 查看所有分区 # swapon -s # 查看所有交换分区 # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) # dmesg | grep IDE # 查看启动时IDE设备检测状况 网络 # ifconfig # 查看所有网络接口的属性 # iptables -L # 查看防火墙设置 # route -n # 查看路由表 # netstat -lntp # 查看所有监听端口 # netstat -antp # 查看所有已经建立的连接 # netstat -s # 查看网络统计信息 进程 # ps -ef # 查看所有进程 # top # 实时显示进程状态 用户

相关文档