在linux下,测试数据加载速度,包括监控cpu,内存,磁盘IO等运行情况等,用到了linux下的多个命令,这里分享下。
top 命令
有关top命令的具体用法,请参考文章:
free 命令
1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。
2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。
[root@study ~]# free -m
total used free shared buffers cached
Mem: 1010 382 628 0 29 296
-/+ buffers/cache: 57 953
Swap: 3137 0 3137
[root@study ~]# uptime
20:17:19 up 9 min, 1 user, load average: 0.00, 0.18, 0.17
现在的时间
系统开机运转到现在经过的时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。
[root@study ~]# uptime -V
procps version 3.2.7
vmstat
[root@study ~]# 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 0 0 643144 29748 303448 0 0 756 49 1036 145 2 2 86 10 0
1 观察磁盘活动情况
磁盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果
wa经常大于10,可能文件系统就需要进行性能调整了。
2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。
sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进
程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu 空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。
iostat
用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
参数:
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
[root@study ~]# iostat
Linux 2.6.18-238.el5 (study) 08/09/11
avg-cpu: %user %nice %system %iowait %steal %idle
1.81 0.04 1.89 8.55 0.00 87.71
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 17.41 1285.43 86.95 659555 44612
sda1 0.17 3.78 0.01 1937 4
sda2 17.20 1280.85 86.94 657202 44608
sdb 0.35 10.01 0.03 5135 16
sdb1 0.07 3.16 0.00 1621 0
sdb2 0.20 5.45 0.03 2794 16
sdc 0.26 8.13 0.03 4171 16
sdc1 0.18 6.46 0.03 3315 16
avg-cpu: %user %nice %system %iowait %steal %idle
1.81 0.04 1.89 8.55 0.00 87.71
%iowait 等待本地I/O时CPU空闲时间的百分比
%idle 未等待本地I/O时CPU空闲时间的百分比
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 17.41 1285.43 86.95 659555 44612
每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。
基本使用
[root@study ~]# iostat -d -k 1 10
Linux 2.6.18-238.el5 (study) 08/09/11
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 11.55 423.43 29.12 329833 22686
sda1 0.11 1.24 0.00 968 2
sda2 11.41 421.92 29.12 328657 22684
sdb 0.23 3.30 0.01 2567 8
sdb1 0.05 1.04 0.00 810 0
sdb2 0.13 1.79 0.01 1397 8
sdc 0.17 2.68 0.01 2085 8
参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。
tps(每秒传输数):该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输”意思是“一次I/O请求”。
多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
kB_read/s:每秒从设备(drive expressed)读取的数据量;kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;kB_read:读取的总数据量;kB_wrtn:写入的总数
量数据量;这些单位都为Kilobytes。
Linux 2.6.18-238.el5 (study) 08/09/11
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 12.46 3.35 6.34 1.98 605.42 42.62 77.84 0.45 53.62 10.82 9.01
sda1 1.55 0.00 0.08 0.00 1.78 0.00 22.06 0.00 17.51 16.48 0.13
sda2 10.89 3.35 6.25 1.98 603.26 42.62 78.52 0.44 54.09 10.81 8.89
sdb 1.85 0.00 0.16 0.00 4.71 0.01 28.62 0.00 9.50 8.83 0.15
sdb1 1.29 0.00 0.03 0.00 1.49 0.00 43.81 0.00 3.59 2.95 0.01
sdb2 0.51 0.00 0.09 0.00 2.56 0.01 27.02 0.00 14.85 14.11 0.13
sdc 2.75 0.01 0.12 0.00 3.83 0.01 31.72 0.00 13.24 11.56 0.14
sdc1 2.69 0.01 0.08 0.00 3.04 0.01 36.21 0.00 18.49 16.08 0.14
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据
,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;wsec/s:每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write
requests that were issued to the device per second;
await:每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该
参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必
就到了瓶颈)。
参见使用方式
iostat -d -x -k 1 10 #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10 #查看cpu状态
一、概念
ramdisk可以使用一部分内存空间来模拟硬盘分区,即ramdisk是一个块设备,要用mkfs格式化。
.ramdisk在内核2.0/2.2版本就已经支持.
.ramdisk设备是它不允许重新声明它的内存空间,所以ramdisk块通常会一直占用空间的内存直到系统重启。
.ramdisk的一个缺点是在它上面创建一个文件系统,它同时会消耗缓冲区高速缓存和文件系统缓存,理论上,它可以消耗一个磁盘文件的两倍随机内存。
.ramdisk的另一个缺点是它大小固定,之后不能改变。
.大多数需要RAM临时存储的应用程序会使用tmpfs文件系统而不是ramdisk设备。
二、ramdisk应用
查看当前系统的ramdisk:
lrwxrwxrwx 1 root root 4 Sep 26 10:06 /dev/ram -> ram1
brw-r----- 1 root disk 1, 0 Sep 26 10:05 /dev/ram0
brw-r----- 1 root disk 1, 1 Sep 26 10:05 /dev/ram1
brw-r----- 1 root disk 1, 10 Sep 26 10:05/dev/ram10
brw-r----- 1 root disk 1, 11 Sep 26 10:05/dev/ram11
brw-r----- 1 root disk 1, 12 Sep 26 10:05/dev/ram12
brw-r----- 1 root disk 1, 13 Sep 26 10:05/dev/ram13
brw-r----- 1 root disk 1, 14 Sep 26 10:05/dev/ram14
brw-r----- 1 root disk 1, 15 Sep 26 10:05/dev/ram15
brw-r----- 1 root disk 1, 2 Sep 26 10:05 /dev/ram2
brw-r----- 1 root disk 1, 3 Sep 26 10:05 /dev/ram3
brw-r----- 1 root disk 1, 4 Sep 26 10:05 /dev/ram4
brw-r----- 1 root disk 1, 5 Sep 26 10:05 /dev/ram5
brw-r----- 1 root disk 1, 6 Sep 26 10:05 /dev/ram6
brw-r----- 1 root disk 1, 7 Sep 26 10:05 /dev/ram7
brw-r----- 1 root disk 1, 8 Sep 26 10:05 /dev/ram8
brw-r----- 1 root disk 1, 9 Sep 26 10:05 /dev/ram9
lrwxrwxrwx 1 root root 4 Sep 26 10:06 /dev/ramdisk -> ram0
介绍几个ramdisk的应用实例。
1,格式化/dev/ram0
2,挂载/dev/ram0 到/tmp/ramdisk0
mount /dev/ram0 /tmp/ramdisk0
3,查看当前挂载的情况
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 19G 3.1G 15G 18% /
tmpfs 252M 0 252M 0% /dev/shm
/dev/ram0 16M 24K 15M 1% /tmp/ramdisk0
有关tmpfs的相关知识。
一,概念:
tmpfs是一种基于内存的文件系统,也可以使用swap分区来存储.tmpfs是一个文件系统,并不是块设备,只要安装它,就可以使用了。
.tmpfs在存储时不需要块设备。
.tmpfs文件系统的数据完全存放在文件系统的缓存中。也可以是交换存储。
.可以在得到高速RAM硬盘优势的同时还享有虚拟内存的灵活性。
.tmpfs基本上是所有版本中共享内存设备/dev/shm的默认文件系统。
.在Linux内核中,虚拟内存资源由物理内存和交换分区组成,tmpfs向虚拟内存子系统请求页来存储文件,它同其它请求页的部分一样,不知道分配给自己的是物理内存还是交
换分区存储。
利用tmpfs来提高磁盘读写的实例。
新建/mnt/userdate目录,并通过tmpfs挂载到/mnt/userdate目录。
[root@xxx mnt]# mount -t tmpfs -o size=100Gtmpfs /mnt/userdate/
[root@xxx mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d1p1 434G 4.6G 407G 2% /
/dev/cciss/c0d0p6 840G 230G 567G 29% /u01
/dev/cciss/c0d0p5 876G 36G 796G 5% /opt
/dev/cciss/c0d0p3 74G 183M 70G 1% /tmp
/dev/cciss/c0d0p1 380M 17M 344M 5% /boot
tmpfs 127G 0 127G 0% /dev/shm
tmpfs 100G 0 100G 0% /mnt/userdate
使用dd命令来测试磁盘数据总是报错,原因未知:
[root@xxx ~]# time dd oflag=direct if=/dev/zero of=/mnt/userdate/testfile bs=2M count=1000
dd: opening `/mnt/userdate/testfile': Invalid argument
real 0m0.002s
user 0m0.001s
sys 0m0.001s
有知道这个错误的原因与解决方法的朋友,望分享下。
在linux下查看系统信息,很简单,不像windows下需要很多第三方软件,用内置的命令即可轻松搞定。
一、 概述
1. 系统
head -n 1 /etc/issue # 查看操作系统版本
cat /proc/cpuinfo # 查看CPU信息
hostname # 查看计算机名
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备
lsmod # 列出加载的内核模块
env # 查看环境变量
2. 资源
df -h # 查看各分区使用情况
du -sh <目录名> # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载
3. 磁盘和分区
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况
4. 网络
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息
5. 进程
top # 实时显示进程状态
6. 用户
id <用户名> # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务
7. 服务
chkconfig --list | grep on # 列出所有启动的系统服务
8. 程序
二、linux下查看系统信息的实例分享
1. cpu
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
[root@xxx /]# grep "model name"/proc/cpuinfo
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
model name : Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
[root@xxx /]# grep "model name"/proc/cpuinfo | cut -f2 -d:
Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
Intel(R) Xeon(R) CPU X3220 @ 2.40GHz
2. 内存
MemTotal: 614400 kB
[root@xxx /]# free -m
total used free shared buffers cached
Mem: 600 23 576 0 0 0
-/+ buffers/cache: 23 576
Swap: 0 0 0
[root@xxx /]# free -m |grep "Mem"| awk '{print $2}'
600
3. 查看CPU位数(32 or 64)
32
4. 查看linux版本
CentOS release 5 (Final)
[root@xxx /]# more /etc/issue
CentOS release 5 (Final)
Kernel \r on an \m
[root@xxx /]# more /proc/version
Linux version 2.6.18-92.1.18.el5.028stab060.2PAE([email=root@rhel5-32-build-xemul]root@rhel5-32-build-xemul[/email]) (gc
c version 4.1.2 20071124 (Red Hat4.1.2-42)) #1 SMP Tue Jan 13 12:31:30 MSK 2009
5. 查看内核版本
2.6.18-92.1.18.el5.028stab060.2PAE
[root@xxx /]# uname -a
Linux xxx.eddiechen.cn2.6.18-92.1.18.el5.028stab060.2PAE #1 SMP Tue Jan 13 12:31:30 MSK 2009 i686i686 i386 GNU/Linux
6. 查看时区
Wed, 25 Feb 2009 02:20:50 +0000
[root@xxx /]# mv /etc/localtime/etc/localtime.save
[root@xxx /]# cp/usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@xxx /]# date -R
Wed, 25 Feb 2009 10:24:26 +0800
7. 主机名
xxx.eddiechen.cn
8. 查看selinux情况
SELinux status: disabled
9. 网络
IP
207.154.202.216
网关
NETWORKING="yes"
GATEWAY="192.0.2.1"
HOSTNAME="xxx.eddiechen.cn"
dns
[root@xxx /]# cat /etc/resolv.conf
nameserver 208.74.168.131
nameserver 208.74.168.132
nameserver 4.2.2.1
10. 已安装软件包
197
[root@xxx /]# yum list installed | wc -l
198
11.磁盘和分区
Filesystem Size Used Avail Use % Mounted on
/dev/simfs 10G 353M 9.7G 4% /
[root@xxx /]# du -sh
353M
[root@xxx /]# du /etc -sh
4.6M /etc
就介绍这些吧,命令很简单,也很经典,linux命令将是你的最爱,哈哈。
希望有了以上的介绍,大家在查询linux系统信息时,会得心应手。