linux磁盘读写性能监控

原文地址

1.硬盘读写性能,#查看TPS和吞吐量信息

iostat -d -k 1 10

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              14.54       417.21       368.06 15719357562 13867444535
dm-0            104.60       415.64       366.87 15660312829 13822621684
dm-1              0.69         1.57         1.19   59041280   44822840

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda                  0.00         0.00         0.00                   0          0
dm-0               0.00         0.00         0.00                   0          0
dm-1               0.00         0.00         0.00                   0          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda                 0.00         0.00         0.00                     0          0
dm-0              0.00         0.00         0.00                     0          0
dm-1              0.00         0.00         0.00                     0          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda                7.14         0.00       208.16                   0        204
dm-0             52.04         0.00       208.16                 0        204
dm-1              0.00         0.00         0.00                     0          0 阅读更多…

linux — top命令

在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 — 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。

操作实例:

在命令行中输入 “top”

即可启动 top

top 的全屏对话模式可分为3部分:系统信息栏命令输入栏进程列表栏

第一部分 — 最上部的 系统信息栏 :

第一行(top):

“00:11:04”为系统当前时刻;

“3:35”为系统启动后到现在的运作时间;

“2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 — 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;

“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;

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

第二行(Tasks):

“59 total”为当前系统进程总数;

“1 running”为当前运行中的进程数;

“58 sleeping”为当前处于等待状态中的进程数;

“0 stoped”为被停止的系统进程数;

“0 zombie”为僵尸进程数;

第三行(Cpus):

分别表示了 CPU 当前的使用率;

0.3% us  用户空间占用CPU百分比
1.0% sy  内核 空间占用CPU百分比
0.0% ni  用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id  空闲CPU百分比
0.0% wa  等待输入输出的CPU时间百分比
0.0% hi
0.0% si

第四行(Mem):

分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;

第五行(Swap):

表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

第二部分 — 中间部分的内部命令提示栏:

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:

s - 改变画面更新频率

l – 关闭或开启第一部分第一行 top 信息的表示

t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示

m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示

N – 以 PID 的大小的顺序排列表示进程列表(第三部分后述)

P – 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)

M – 以内存占用率大小的顺序排列进程列表 (第三部分后述)

h – 显示帮助

n – 设置在进程列表所显示进程的数量

q – 退出 top

第三部分 — 最下部分的进程列表栏:

进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

序号  列名  含义
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  进程状态。
D =不可中断的睡眠状态
R =运行
S =睡眠
T =跟踪/停止
Z =僵尸进程
x  COMMAND  命令名/命令行
y  WCHAN  若该进程在睡眠,则显示睡眠中的系统函数名
z  Flags  任务标志,参考 sched.h
默认情况下仅显示比较重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND  列。可以通过下面的快捷键来更改显示内容。
更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z  即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z  可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的  R 键可以将当前的排序倒转。

Linux下SVN命令使用简介

1、   将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

例如:svn checkout svn://192.168.1.1/pro/domain

简写:svn co

2、   往版本库中添加新的文件

svn add file (这里恐怕后面要添加目录吧!)

例如:svn add test.php(添加test.php)

svn add *.php(添加当前目录下所有的php文件)

3、   将改动的文件提交到版本库 阅读更多…

堆和栈相关知识

堆和栈的区别
一、预备知识—程序的内存分配

一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放
4、文字常量区—常量字符串就是放在这里的。 程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码。 阅读更多…

LINUX下的C++编译器GCC简介

Gcc简介

Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。

gcc 编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。 在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。 阅读更多…