当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪linux下查看资源占用情况的方法分享      在linux下,测试数据加载速度,包括监控cpu,内存,磁盘IO等运行情况等,用到了linux下的多个命令,这里分享下。 top 命令 有关top命令的具体用法,请参考文章: free 命令 1.作用 free命令用.........
    ▪linux下内存虚拟硬盘的实现方法分享      一、概念 ramdisk可以使用一部分内存空间来模拟硬盘分区,即ramdisk是一个块设备,要用mkfs格式化。 .ramdisk在内核2.0/2.2版本就已经支持. .ramdisk设备是它不允许重新声明它的内存空间,所以ram.........
    ▪linux下查看系统信息的方法分享      在linux下查看系统信息,很简单,不像windows下需要很多第三方软件,用内置的命令即可轻松搞定。 一、   概述 1. 系统   代码示例:  uname -a   # 查看内核/操作系统/CPU信息  head -n 1 /etc/iss.........

[1]linux下查看资源占用情况的方法分享
    来源: 互联网  发布时间: 2013-12-24

在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。
 

代码示例:
[root@study ~]# iostat -d -x 1 10
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 -k 1 10        #查看TPS和吞吐量信息
iostat -d -x -k 1 10      #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10            #查看cpu状态

    
[2]linux下内存虚拟硬盘的实现方法分享
    来源: 互联网  发布时间: 2013-12-24

一、概念
ramdisk可以使用一部分内存空间来模拟硬盘分区,即ramdisk是一个块设备,要用mkfs格式化。
.ramdisk在内核2.0/2.2版本就已经支持.
.ramdisk设备是它不允许重新声明它的内存空间,所以ramdisk块通常会一直占用空间的内存直到系统重启。
.ramdisk的一个缺点是在它上面创建一个文件系统,它同时会消耗缓冲区高速缓存和文件系统缓存,理论上,它可以消耗一个磁盘文件的两倍随机内存。
.ramdisk的另一个缺点是它大小固定,之后不能改变。
.大多数需要RAM临时存储的应用程序会使用tmpfs文件系统而不是ramdisk设备。

二、ramdisk应用
查看当前系统的ramdisk:
 

代码示例:
[root@xxx ~]# ll /dev/ram*
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
 

代码示例:
mkfs -t ext2 /dev/ram0

2,挂载/dev/ram0 到/tmp/ramdisk0
 

代码示例:
mkdir /tmp/ramdisk0
mount /dev/ram0 /tmp/ramdisk0

3,查看当前挂载的情况
 

代码示例:
df -h
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目录。
 

代码示例:
mkdir /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
 

有知道这个错误的原因与解决方法的朋友,望分享下。


    
[3]linux下查看系统信息的方法分享
    来源: 互联网  发布时间: 2013-12-24

在linux下查看系统信息,很简单,不像windows下需要很多第三方软件,用内置的命令即可轻松搞定。

一、   概述
1. 系统
 

代码示例:
 uname -a   # 查看内核/操作系统/CPU信息
 head -n 1 /etc/issue   # 查看操作系统版本
 cat /proc/cpuinfo  # 查看CPU信息
 hostname   # 查看计算机名
 lspci -tv      # 列出所有PCI设备
 lsusb -tv      # 列出所有USB设备
 lsmod      # 列出加载的内核模块
 env    # 查看环境变量

2. 资源
 

代码示例:
 free -m    # 查看内存使用量和交换区使用量
 df -h      # 查看各分区使用情况
 du -sh <目录名>    # 查看指定目录的大小
 grep MemTotal /proc/meminfo   # 查看内存总量
 grep MemFree /proc/meminfo    # 查看空闲内存量
 uptime     # 查看系统运行时间、用户数、负载
 cat /proc/loadavg  # 查看系统负载

3. 磁盘和分区
 

代码示例:
 mount | column -t  # 查看挂接的分区状态
 fdisk -l   # 查看所有分区
 swapon -s      # 查看所有交换分区
 hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
 dmesg | grep IDE   # 查看启动时IDE设备检测状况

4. 网络
 

代码示例:
 ifconfig   # 查看所有网络接口的属性
 iptables -L    # 查看防火墙设置
 route -n   # 查看路由表
 netstat -lntp  # 查看所有监听端口
 netstat -antp  # 查看所有已经建立的连接
 netstat -s     # 查看网络统计信息

5. 进程
 

代码示例:
 ps -ef     # 查看所有进程
 top       # 实时显示进程状态

6. 用户
 

代码示例:
 w      # 查看活动用户
 id <用户名>    # 查看指定用户信息
 last       # 查看用户登录日志
 cut -d: -f1 /etc/passwd   # 查看系统所有用户
 cut -d: -f1 /etc/group    # 查看系统所有组
 crontab -l     # 查看当前用户的计划任务

7. 服务
 

代码示例:
 chkconfig --list   # 列出所有系统服务
 chkconfig --list | grep on    # 列出所有启动的系统服务

8. 程序
 

代码示例:
rpm -qa    # 查看所有安装的软件包

二、linux下查看系统信息的实例分享
1. cpu
 

代码示例:
[root@xxx /]# more /proc/cpuinfo | grep"model name"
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. 内存
 

代码示例:
[root@xxx /]# grep MemTotal /proc/meminfo
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)
 

代码示例:
[root@xxx /]# getconf LONG_BIT
32

4. 查看linux版本
 

代码示例:
[root@xxx /]# more /etc/redhat-release
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. 查看内核版本
 

代码示例:
[root@xxx /]# uname -r
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. 查看时区
 

代码示例:
[root@xxx /]# date -R
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. 主机名
 

代码示例:
[root@xxx /]# hostname
xxx.eddiechen.cn

8. 查看selinux情况
 

代码示例:
[root@xxx /]# sestatus
SELinux status:    disabled

9. 网络
IP
 

代码示例:
[root@xxx /]# ifconfig | grep 'inet addr:'|grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
207.154.202.216
 

网关
 

代码示例:
[root@xxx /]# cat /etc/sysconfig/network
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. 已安装软件包
 

代码示例:
[root@xxx /]# rpm -qa | wc -l
197
[root@xxx /]# yum list installed | wc -l
198

11.磁盘和分区
 

代码示例:
[root@xxx /]# df -h
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系统信息时,会得心应手。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
windows iis7站长之家
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3