工具使用:

vmstat 查看cpu时间、内存、IO的情况。

参考:http://linuxcommand.org/man_pages/vmstat8.html

基本用法:

[root@root ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st 0 //其中2和3分别表示,间隔3秒获取一次数据,共获取3次,所以你可以看到有三条数据在上面。
Procs
  r: 等待cpu时间片的进程个数,如果等待cpu的进程个数长期比机器上的cpu个数大,那你是时候加cpu了,当然前提不是写的很烂的程序一直在吃cpu,如果是的话,杀了那个程序员吧。
  b: 等待资源的进程数(这个资源可能是IO、网络设备、或是其他外设),这里的进程是没有办法进行kill掉的,因为它们处于uninterruptible sleep状态(也就是不允许中断的等待状态,它们不接收任何的信号)。如果这里有很多的进程,那说明可能你机器磁盘,网卡,或是文件系统等出了问题,需要检查一下。

Memory
  swpd: 虚拟内存的使用大小,我们知道为了防止物理内存装满数据之后,内存无法接着工作,我们需要在内存快用完的时间把不常用的内存数据置换到磁盘里(交换区),好让内存腾出空间来接纳新的数据。这个数据就是表示现在有多少内存数据跑到磁盘里。当这个数据比于0时,并不表示内存就不够用了,需要观察下面si和so。单位为K
  free: 可用内存大小(真实的内存)
  buff: buffer cache的内存使用量,一般块设备才会使用到buffer cache
  cache: cache的内存使用量,一般用于文件系统缓存文件内容,文件句柄数据。
Swap
  si: 每秒从磁盘调入到内存的数据量,单位是K/s。
  so: 每秒从内存调出到磁盘的数据量,单位为K/s。如果发现si和so长期不为0而且每秒置换的数据量大,说明内存不够用了。
IO
  bi: 每秒读取磁盘多少数据量,是一个检查磁盘/硬盘读取是否频繁的指标,如:专门提供下载的服务,如果没有设置好缓存和中间缓存层,这个数值就会比较高了。
  bo: 每秒写入磁盘的数据量。提示:频繁的sql insert或update操作,会导致大量的写操作。
System
  in: 在一段时间内每秒设备中断次数
  cs: 每秒进行上下文切换(如环境变量、进程切换、数据段切换和恢复等)的次数。
CPU
  us: 用户使用cpu时间百分比,像应用程序,shell命令等
  sy: 内核消耗的cpu时间百分比。
  id: cpu空闲时间百分比。
  wa: cpu等待io设备时间百分比。 Top查看负载
交互命令:
c: 切换command项的显示,切换显示任务命令的完整路径与简称。简单说就是如果你想查看列表里任务的命令路径,按这个就对了。如:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
root R 0.7 0.3 :05.94 top
root 134m S 0.3 0.1 :04.04 ./redis-server *:
root 321m S 0.3 0.3 :38.03 /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
z: 运行top之后,按下z,正在执行的进程(也就是正使用cpu的进程)会以特殊的颜色标示出来。

d: 设置top刷新间隔,默认top是3秒,按下d之后,再输入数字然后回车,新的间隔就设置好了。
top - :: up  days, :,   users,  load average: 0.08, 0.06, 0.01
.......
Mem: 24676696k total, 23276508k used, 1400188k free, 325740k buffers
Swap: 26738680k total, 64868k used, 26673812k free, 15243460k cached
Change delay from 3.0 to: //注意这里,默认是3秒
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
nobody 171m 78m S 0.7 0.3 :49.32 php-cgi
nobody 157m 65m S 0.7 0.3 :08.80 php-cgi
root R 0.7 0.0 :00.68 top
nobody 171m 78m S 0.3 0.3 :09.29 php-cgi
shift+w: 保存当前top快照,可以在/root/.toprc下找到所保存的快照(其实就是保存当前top显示的配置,保存以后打开top显示的字段及颜色等就会跟保存时的设置一个样。)。
h: 非常实用的命令,显示所有命令的帮助,有用吧。
Help for Interactive Commands - procps version 3.2.
Window :Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off. Z,B Global: 'Z' change color mappings; 'B' disable/enable bold
l,t,m Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
,I Toggle SMP view: '' single/separate states; 'I' Irix/Solaris mode f,o . Fields/Columns: 'f' add or remove; 'o' change display order
F or O . Select sort field
<,> . Move sort field: '<' next col left; '>' next col right
R,H . Toggle: 'R' normal/reverse sort; 'H' show threads
c,i,S . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time
x,y . Toggle highlights: 'x' sort field; 'y' running tasks
z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
u . Show specific user only
n or # . Set maximum tasks displayed k,r Manipulate tasks: 'k' kill; 'r' renice
d or s Set update interval
W Write configuration file
q Quit
( commands shown with '.' require a visible task display window )
Press 'h' or '?' for help with Windows,
any other key to continue

参考:http://linux.about.com/od/commands/l/blcmdl1_top.htm

free查看内存的使用

             total       used       free     shared    buffers     cached
Mem:
-/+ buffers/cache:
Swap:

Mem:  内存总大小、已使用、未使用、共享内存大小、缓冲区使用大小、缓存使用大

-/+ buffers/cache: 缓冲和缓存已使用、和未使用

Swap: 交换区大小、已经使用、未使用

说明1: 首先解释一下缓冲与缓存的区别:缓冲区里的数据是不可复用的,当数据流由快设备流向慢设备时,为了使得这个过程正常工作,需要一个缓冲区来暂时保存数据,比如说程序的内存数据要写入硬盘,由于内存的读写速度比较硬盘快的多,如果不管硬盘的速度,一个劲的输出数据到硬盘,硬盘肯定来不及写,那数据就丢掉了。所以这时系统会先把内存数据写入缓冲区内(其实也是内存的一部分),然后再由缓冲区慢慢写入硬盘中。而缓存则是数据可复用的,对于频繁使用的数据,可以放入缓存区内,下次使用的时候,直接从缓存区内获取。缓冲区还有一种用途,像数据库的排序操作,需要把数据都取出来放在内存里,在内存中进行排序,其实用的就是缓冲区。

说明2:-/+ buffers/cache 的两个值是这样得来的: 463528 (Mem used) - 592 (Mem buffers) - 33716 (Mem cached) 及 5924 + 592 + 33716。从这两个公式就可以看出Mem used显示的数据是包含了buffers 和 cached使用大小的。

参考:http://www.linuxnix.com/2013/05/find-ram-size-in-linuxunix.html

htop代替top

参考:http://www.cnblogs.com/mchina/archive/2013/03/15/2858041.html

其他工具:iostat ps iftop nethogs netstat sar

Linux服务器性能分汇总的更多相关文章

  1. 检查Linux服务器性能

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在? 概述通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. • uptime• ...

  2. 用十条命令在一分钟内检查Linux服务器性能

    转自:http://www.infoq.com/cn/news/2015/12/linux-performance 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出L ...

  3. 1分钟内检查Linux服务器性能的10条命令

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?Netflix性能工程团队的Brendan Gregg写下了这篇博文,来看他们是怎样通过十条命 ...

  4. 如何用十条命令在一分钟内检查Linux服务器性能

    “如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断 ...

  5. 用十条命令在一分钟内检查 Linux 服务器性能

    原文地址: http://www.oschina.net/news/69132/linux-performance 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出L ...

  6. linux 服务器性能监控(一)

    这篇文章主要介绍一些常用的linux服务器性能监控命令,包括命令的常用参数.指标的含义以及一些交互操作. 几个问题 命令本身并不复杂,关键是你对操作系统基础知识的掌握和理解,先来看看下面几个问题: C ...

  7. 检查 Linux 服务器性能

    如何用十条命令在一分钟内检查 Linux 服务器性能 如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文 ...

  8. 检查Linux服务器性能的关键十条命令

    检查Linux服务器性能的关键十条命令 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL ...

  9. 转:用十条命令在一分钟内检查Linux服务器性能

    转自:http://www.infoq.com/cn/news/2015/12/linux-performance?utm_campaign=rightbar_v2&utm_source=in ...

随机推荐

  1. PHP开发基础视频教程

    PHP现今作为互联网运用很广泛的编程语言,市场需求量也越来越高,而PHP开发工程师的薪资也是一路水涨船高,更多的人看到了PHP的发展前景,纷纷都想投入到PHP的开发大军中来,那么对于很多转行或者零基础 ...

  2. Nengo 神经网络

    Nengo被加拿大滑铁卢大学的神经学家和软件工程师表示,这是迄今为止产生的世界上最复杂.最大规模的人类大脑模型模拟.这个名叫Spaun的大脑由250万 个模拟神经元组成,它能执行8种不同类型的任务.这 ...

  3. WPF使用附加属性绑定,解决data grid列绑定不上的问题

    背景 需要对datagrid的列header添加自定义属性,然后绑定,并根据不同的列header绑定不同的值,传统的加扩展类太麻烦,而附加属性的特点更适用于这种场景. 1.xaml 代码 <Da ...

  4. 解析IPV4报文 和IPV6 报文的 checksum

    解析IPV4报文和IPV6报文的checksum的算法: 校验和(checksum)算法,简单的说就是16位累加的反码运算: 计算函数如下: 我们在计算时是主机字节序,计算的结果封装成IP包时是网络字 ...

  5. C# 使用Epplus导出Excel [2]:导出动态列数据

    C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...

  6. Bzoj 2752 高速公路 (期望,线段树)

    Bzoj 2752 高速公路 (期望,线段树) 题目链接 这道题显然求边,因为题目是一条链,所以直接采用把边编上号.看成序列即可 \(1\)与\(2\)号点的边连得是. 编号为\(1\)的点.查询的时 ...

  7. PAT 乙级 1033

    题目 题目地址:PAT 乙级 1033 题解 本题一直有一分的样例点过不了,原因在于用了cin接收输入的字符…… 问题在于:如果用cin输入,无法接收无坏键的情况的输入,需要getline作为输入:这 ...

  8. (19)zabbix Applications使用介绍

    介绍 Applications(我们翻译为应用程序)是item的一个组. 例如我们要监控MySQL,我们可以将所有和MySQL相关的item放到这个应用程序中. 例如MySQL的availabilit ...

  9. linux kernel如何处理大端小端字节序

    (转)http://blog.csdn.net/skyflying2012/article/details/43771179 最近在做将kernel由小端处理器(arm)向大端处理器(ppc)的移植的 ...

  10. Python把类当做字典来访问

    定义一个类将它实例化,我们可以通过obj.属性来访问类的属性,如果想获取类的所有实例变量,我们可以使用obj.__dict__来访问,如下: class A: def __init__(self): ...