Linux: 测试
- TAGS: Linux
系统测试
脚本
cat <<\EOF> check-hard.sh #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH __check_system() { OS_RELEASE="$(awk -F'=' '/^NAME/{print $2}' /etc/os-release| sed 's@\"@@g')" `#OS: Amazon Linux|CentOS Linux|Ubuntu` ARCH="$(arch)" `#ARCH: x86_64(amd)|aarch64(arm)` } __init() { __check_system [[ "$OS_RELEASE" =~ "Linux" ]] && yum install -y dmidecode smartmontools &>/dev/null ||: [[ "$OS_RELEASE" =~ "Ubuntu" ]] && apt install dmidecode smartmontools &>/dev/null ||: #if [ "$(cat /proc/version|grep 'centos.org')" != "centos" ]; then # apt-get install smartmontools -y #fi } __init echo "" echo "---------------------服务器信息------------------------" echo "服务器品牌:"`dmidecode|grep "System Information" -A9 | grep Manufacturer |awk -F: '{print $2}'` echo "服务器型号:"`dmidecode|grep "System Information" -A9 | grep Product |awk -F: '{print $2}'` echo "序列号:"`dmidecode|grep "System Information" -A9 | grep Serial |awk '{print $3}'` echo "" echo "" echo "---------------------主板信息--------------------------" b=`dmidecode|grep "System Information" -A9|egrep Manufacturer: |awk '{print $2}'` echo "主板品牌:" $b c=`dmidecode |grep "System Information" -A9 |grep "Product Name:" |awk '{print $3}'` echo "主板型号:" $c echo "" echo "" echo "--------------------操作系统信息------------------------" #echo "系统:" `cat /etc/issue |grep -v Kernel` echo "系统:" `echo $OS_RELEASE` echo "主机名:" `uname -n` echo "内核版本:" `uname -r` echo "" echo "----------------------CPU信息--------------------------" echo "CPU个数:" `cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l` echo "CPU型号:" `cat /proc/cpuinfo | grep 'model name' |uniq |awk -F : '{print $2}'` echo "每个CPU核数:" `cat /proc/cpuinfo| grep "cpu cores"| uniq |awk '{print $4}'` echo "CPU总个数:" `cat /proc/cpuinfo | grep "physical id" | uniq | wc -l` echo "逻辑CPU个数(总核数):" `cat /proc/cpuinfo| grep "processor"| wc -l` echo "" echo "" echo "---------------------内存信息--------------------------" echo "内存插槽总数:" `dmidecode |grep -A16 "Memory Device$" |grep Manufacturer: | wc -l` echo "未使用插槽数:" `dmidecode |grep -A16 "Memory Device$" |grep 'Manufacturer: NO DIMM' | wc -l` echo "厂商如下:" dmidecode -t memory |grep Manufacturer echo "内存型号:" dmidecode -t memory |grep 'Part Number' echo "每条内存大小:" dmidecode|grep -A5 "Memory Device"|grep Size|grep -v Range echo "每条内存频率:" dmidecode|grep -A16 "Memory Device"|grep Speed echo "总内存(GB):" `free -g |grep Mem |awk '{print $2}'` echo "" echo "" echo "---------------------硬盘信息--------------------------" device_name=`lsblk -d -o name |sed '1d'` for d in "$device_name"; do echo "硬盘厂商、型号、序列号:" `smartctl -a /dev/$d |egrep "Device Model:|Model Number:|Serial Number:"` echo "硬盘数量、容量:" `fdisk -l |grep "Disk /dev/$d"` done echo "" echo "" echo "---------------------网卡信息--------------------------" echo "网卡设备:" lspci | grep Ethernet echo "" echo "" EOF
查看服务器硬件信息
查看服务器型号、序列号
[root@Master ~]# dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product|Serial"
查看主板型号
[root@Master ~]# dmidecode |grep -A16 "System Information$"
显示主板序列号
# dmidecode | grep 'Serial Number'
查看BIOS信息
[root@Master ~]# dmidecode -t bios # dmidecode 2.12 SMBIOS 2.8 present. Handle 0x0008, DMI type 0, 24 bytes BIOS Information Vendor: HP Version: U19 Release Date: 12/27/2015 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 16384 kB Characteristics: PCI is supported PNP is supported BIOS is upgradeable BIOS shadowing is allowed ESCD support is available Boot from CD is supported Selectable boot is supported EDD is supported 5.25"/360 kB floppy services are supported (int 13h) 5.25"/1.2 MB floppy services are supported (int 13h) 3.5"/720 kB floppy services are supported (int 13h) Print screen service is supported (int 5h) 8042 keyboard services are supported (int 9h) Serial services are supported (int 14h) Printer services are supported (int 17h) CGA/mono video services are supported (int 10h) ACPI is supported USB legacy is supported BIOS boot specification is supported Function key-initiated network boot is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 2.0 Firmware Revision: 2.40
查看内存槽及内存条
[root@Master ~]# dmidecode -t memory | head -45 | tail -23 Memory Device Array Handle: 0x000A Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: PROC 1 DIMM 1 Bank Locator: Not Specified Type: DDR4 Type Detail: Synchronous Registered (Buffered) Speed: 2133 MHz Manufacturer: HP Serial Number: Not Specified Asset Tag: Not Specified Part Number: 752369-081 Rank: 2 Configured Clock Speed: 2133 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V
查看网卡信息
[root@Master ~]# dmesg | grep -i Ethernet igb: Intel(R) Gigabit Ethernet Network Driver - version 5.3.0-k igb 0000:04:00.0: Intel(R) Gigabit Ethernet Network Connection igb 0000:04:00.1: Intel(R) Gigabit Ethernet Network Connection igb 0000:04:00.2: Intel(R) Gigabit Ethernet Network Connection igb 0000:04:00.3: Intel(R) Gigabit Ethernet Network Connection igb 0000:02:00.0: Intel(R) Gigabit Ethernet Network Connection igb 0000:02:00.1: Intel(R) Gigabit Ethernet Network Connection
查看pci信息,即主板所有硬件槽信息
[root@Master ~]# lspci | head -10 00:00.0 Host bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMI2 (rev 02) 00:01.0 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1 (rev 02) 00:01.1 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1 (rev 02) 00:02.0 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 (rev 02) 00:02.1 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 (rev 02) 00:02.2 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 (rev 02) 00:02.3 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 2 (rev 02) 00:03.0 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 (rev 02) 00:03.1 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 (rev 02) 00:03.2 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 (rev 02)
二、查看CPU信息
查看cpu型号
[root@Master ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 40 Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz
查看系统中实际物理CPU的数量(物理)
[root@Master ~]# grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l
2
系统中实际物理CPU的数量(核数)
[root@Master ~]# cat /proc/cpuinfo |grep 'processor'|wc -l
40
查看每个物理CPU中core的个数(即核数)
[root@Master ~]# cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 10
查看CPU的主频
[root@Master ~]# cat /proc/cpuinfo |grep MHz|uniq cpu MHz : 1200.000 cpu MHz : 2300.000 cpu MHz : 1200.000
查看CPU的详细信息
[root@Master ~]# cat /proc/cpuinfo | head -20 processor : 0 //逻辑处理器的ID vendor_id : GenuineIntel cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz //CPU型号 stepping : 2 microcode : 54 cpu MHz : 1200.000 cache size : 25600 KB physical id : 0 siblings : 20 //相同物理封装处理器中逻辑处理器数 core id : 0 cpu cores : 10 //相同物理封装处理器中的内核数 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 15 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm cqm_llc cqm_occup_llc
查看CPU的相关信息
[root@Master ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 40 On-line CPU(s) list: 0-39 Thread(s) per core: 2 Core(s) per socket: 10 Socket(s): 2 NUMA node(s): 2 Vendor ID: GenuineIntel CPU family: 6 Model: 63 Model name: Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz Stepping: 2 CPU MHz: 1200.000 BogoMIPS: 4594.43 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 25600K NUMA node0 CPU(s): 0-9,20-29 NUMA node1 CPU(s): 10-19,30-39 [root@Master ~]#
查看cpu运行模式
[root@Master ~]# getconf LONG_BIT 64
#### 9)查看cpu是否支持64bit
[root@Master ~]# cat /proc/cpuinfo | grep flags | grep lm| wc -l 40 结果大于0, 说明支持64bit计算lm指long mode, 支持lm则是64bit
三、查看内存信息
查看内存硬件信息
root@Master ~]# dmidecode -t memory | head -45 | tail -24 Handle 0x000C, DMI type 17, 40 bytes Memory Device Array Handle: 0x000A Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 16384 MB Form Factor: DIMM Set: None Locator: PROC 1 DIMM 1 Bank Locator: Not Specified Type: DDR4 Type Detail: Synchronous Registered (Buffered) Speed: 2133 MHz Manufacturer: HP Serial Number: Not Specified Asset Tag: Not Specified Part Number: 752369-081 Rank: 2 Configured Clock Speed: 2133 MHz Minimum Voltage: 1.2 V Maximum Voltage: 1.2 V Configured Voltage: 1.2 V
最大支持多少内存
[root@Master ~]# dmidecode|grep -P 'Maximum\s+Capacity'
Linux 查看内存的插槽数,已经使用多少插槽.每条内存多大:
[root@dcs41x64-xerqi ~]# dmidecode|grep -A5 "Memory Device"|grep Size|grep -v Range
Size: 8192 MB
Size: 8192 MB
Size: No Module Installed
Size: 8192 MB
Size: 8192 MB
Linux 查看内存的频率:
[root@Master ~]# dmidecode|grep -A16 "Memory Device"|grep 'Speed'
Linux 查看内存的详细信息:
[root@Master ~]# cat /proc/meminfo |head -20 MemTotal: 131897620 kB MemFree: 414124 kB Buffers: 1040560 kB Cached: 111083180 kB SwapCached: 1320 kB Active: 7637912 kB Inactive: 110607108 kB Active(anon): 4406900 kB Inactive(anon): 1714900 kB Active(file): 3231012 kB Inactive(file): 108892208 kB Unevictable: 10878976 kB Mlocked: 5521652 kB SwapTotal: 16777212 kB SwapFree: 16737536 kB Dirty: 180 kB Writeback: 0 kB AnonPages: 16999324 kB Mapped: 149020 kB Shmem: 172 kB
Linux 查看内存的使用情况
[root@Master ~]# free -m // -b,-k,-m,-g show output in bytes, KB, MB, or GB
total used free shared buffers cached
Mem: 128806 123407 5398 0 1015 103474
-/+ buffers/cache: 18918 109888
Swap: 16383 38 16345
四、查看硬盘信息
查看硬盘型号
cat /proc/scsi/scsi |grep -i model
Ubunut-硬盘寿命
#00.安装 apt-get install smartmontools #01.硬盘寿命: sudo smartctl -a /dev/sda |grep Load_Cycle_Count 193 Load_Cycle_Count 0x0032 096 096 000 Old_age Always - 8378 通常,硬盘制造商规定的Load_Cycle_Count数目上限是600,000次, 要是超过300,000次就会影响到正常的读写,再多的话就差不多要报废了 #02.硬盘的通电时间: ~$ sudo smartctl -a /dev/sda |grep Power_On_Hours 9 Power_On_Hours 0x0032 098 098 000 Old_age Always - 2040 Power_On_Hours是硬盘的通电时间,2040小时; 1天24小时 2040小时除以24小时= 85天 Windows上可以用Everest或者HD Tune Pro查看Load_Cycle_Count
查看挂接的分区状态
[root@Master ~]# fdisk -l |grep Disk
查看硬盘和分区分布
[root@Master ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 279.4G 0 disk ├─sda1 8:1 0 50M 0 part /boot ├─sda2 8:2 0 100G 0 part / ├─sda3 8:3 0 50G 0 part /home ├─sda4 8:4 0 1K 0 part ├─sda5 8:5 0 16G 0 part [SWAP] ├─sda6 8:6 0 13.3G 0 part /tmp └─sda7 8:7 0 100G 0 part /usr sdb 8:16 0 83.7T 0 disk └─sdb1 8:17 0 83.7T 0 part /PureDisk
查看硬盘和分区的详细信息
[root@Master ~]# fdisk -l Disk /dev/sda: 300.0 GB, 299966445568 bytes 255 heads, 63 sectors/track, 36468 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 262144 bytes / 262144 bytes Disk identifier: 0x000384d9 Device Boot Start End Blocks Id System /dev/sda1 * 1 7 51200 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 7 13061 104857600 83 Linux /dev/sda3 13061 19588 52428800 83 Linux /dev/sda4 19588 36469 135597056 5 Extended /dev/sda5 19588 21677 16777216 82 Linux swap / Solaris /dev/sda6 21677 23415 13962240 83 Linux /dev/sda7 23416 36469 104854528 83 Linux WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sdb: 92017.3 GB, 92017310654464 bytes 255 heads, 63 sectors/track, 11187134 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 262144 bytes / 6029312 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 1 267350 2147483647+ ee GPT Partition 1 does not start on physical sector boundary.
查看挂接的分区状态
[root@Master ~]# mount | column -t /dev/sda2 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext4 (rw) /dev/sda3 on /home type ext4 (rw) /dev/sda6 on /tmp type ext4 (rw) /dev/sda7 on /usr type ext4 (rw) /dev/sdb1 on /PureDisk type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw
查看挂接的分区状态
[root@Master ~]# swapon -s Filename Type Size Used Priority /dev/sda5 partition 16777212 39676 -1
查看硬盘使用情况
[root@Master ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 ext4 99G 561M 93G 1% / tmpfs tmpfs 63G 76K 63G 1% /dev/shm /dev/sda1 ext4 45M 38M 4.9M 89% /boot /dev/sda3 ext4 50G 52M 47G 1% /home /dev/sda6 ext4 13G 34M 13G 1% /tmp /dev/sda7 ext4 99G 21G 73G 23% /usr /dev/sdb1 ext4 84T 41T 40T 51% /PureDisk
硬盘检测命令smartctl
[root@Master ~]# smartctl -a /dev/sda smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-642.el6.x86_64] (local build) Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net Vendor: HP Product: LOGICAL VOLUME Revision: 3.56 User Capacity: 299,966,445,568 bytes [299 GB] Logical block size: 512 bytes Logical Unit id: 0x600508b1001cc8a1b9ec4dacc5ab35dc Serial number: PDNNK0BRH9U0AG Device type: disk Local Time is: Mon Feb 5 13:13:33 2018 CST Device supports SMART and is Enabled Temperature Warning Disabled or Not Supported SMART Health Status: OK Error Counter logging not supported Device does not support Self Test logging
硬盘坏道检测
badblocks坏道检测
badblock命令用于查找磁盘中损坏的区块,是一个很好的检查坏道位置的工具。
语法: badblock (选项) (参数) 选项 -b:指定磁盘的区块大小,单位为字节; -o:将检查的结果写入指定的输出文件; -s:在检查时显示进度; -v:执行时显示详细的信息; -w:在检查时,执行写入测试。 -c:指定检查次数。 参数 磁盘装置:指定要检查的磁盘装置; 磁盘区块数:指定磁盘装置的区块总数; 启始区块:指定要从哪个区块开始检查。
扫描硬盘的损坏扇区或区块
badblocks -s -v /dev/sdb > /tmp/bad-blocks.txt
五、查看网卡信息
查看网卡硬件信息
[root@Master ~]# lspci | grep -i 'eth'
查看系统的所有网络接口
[root@Master ~]# ifconfig -a [root@Master ~]# ip link show
查看某个网络接口的详细信息,例如eth0的详细参数和指标
[root@Master ~]# ethtool eth0 Settings for eth0: Supported ports: [ FIBRE ] Supported link modes: 10000baseT/Full Supported pause frame use: No Supports auto-negotiation: No Advertised link modes: 10000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: No Speed: 10000Mb/s Duplex: Full Port: FIBRE PHYAD: 0 Transceiver: external Auto-negotiation: off Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
查看所有网卡的链路状态
[root@Master ~]# for i in `seq 0 9`;do ethtool eth${i} | egrep 'eth|Link';done Settings for eth0: Link detected: yes Settings for eth1: Link detected: yes Settings for eth2: Link detected: no Settings for eth3: Link detected: no Settings for eth4: Link detected: no Settings for eth5: Link detected: no Settings for eth6: Link detected: no Settings for eth7: Link detected: no Settings for eth8: Link detected: no Settings for eth9: Link detected: no
### 六、列出所有PCI设备信息
[root@Master ~]# lspci -tv | more -+-[0000:ff]-+-08.0 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 | +-08.3 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 0 | +-09.0 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 | +-09.3 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 QPI Link 1 | +-0b.0 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring | +-0b.1 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring | +-0b.2 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 R3 QPI Link 0 & 1 Monitoring | +-0c.0 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0c.1 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0c.2 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0c.3 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0c.4 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0c.5 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0c.6 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0c.7 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0d.0 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0d.1 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Unicast Registers | +-0f.0 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent | +-0f.1 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent | +-0f.2 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent | +-0f.3 Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 Buffered Ring Agent
CPU
CPU性能测试
通过bc命令计算特别函数
例:计算圆周率
echo "scale=5000; 4*a(1)" | bc -l -q
工具二:Super Pi for linux
Super PI是利用CPU的浮点运算能力来计算出π(圆周率),所以目前普遍被超频玩家用做测试系统稳定性和测试CPU计算完后特定位数圆周率所需的时间。
http://www.super-computing.org/
下载页:ftp://pi.super-computing.org/
wget ftp://pi.super-computing.org/Linux/super_pi.tar.gz tar -xzvf super_pi.tar.gz ./super_pi 20
20为位数。表示要算2的多少次方位,如通常要算小数点后1M位。
内存
HP-DL380p gen8内存位置关系
grep "[0-9]" /sys/devices/system/edac/mc/mc*/csrow*/ch*_ce_count
https://www.cnblogs.com/luckyall/p/11225772.html
count不为0的行即代表存在内存错误。
工具:memtester
官方:http://pyropus.ca/software/memtester/
wget http://pyropus.ca/software/memtester/old-versions/memtester-4.3.0.tar.gz
tar -xzvf memtester-4.3.0.tar.gz
cd memtester-4.3.0
make && make install
用法:Usage: ./memtester [-p physaddrbase [-d device]] <mem>[B|K|M|G] [loops] 例:memtester 1G 5
内存压力测试工具:memtester
使用方法:memtester 32G 1 测试32G的内存1次
cpu压力测试工具:cpuburn
wget https://cdn.pmylund.com/files/tools/cpuburn/linux/cpuburn-1.0-amd64.tar.gz
tar xf cpuburn-1.0-amd64.tar.gz
cd cpuburn
./cpuburn -n 2 -u 100 开启2个线程 测试时间100秒
内存测试memtest86
硬盘
查看linux raid情况
rpm -ivh MegaCli-8.07.14-1.noarch.rpm
/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll 【显示所有逻辑磁盘组信息】(查看磁盘是否开启回写、预读等提高性能的选项) MegaCli常用参数介绍 /opt/MegaRAID/MegaCli/MegaCli64 -adpCount 【显示适配器个数】 /opt/MegaRAID/MegaCli/MegaCli64 -AdpGetTime -aALL 【显示适配器时间】 /opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aAll 【显示所有适配器信息】(查看raid卡缓存Memory Size: 512MB) /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll 【显示所有逻辑磁盘组信息】(查看磁盘是否开启回写、预读等提高性能的选项) /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll 【显示所有的物理磁盘信息】 /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL |grep 'Charger Status' 【查看充电状态】(有些raid卡电量要在50%以上才能开启上面的那些参数) /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL【显示BBU状态信息】 /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuCapacityInfo -aALL【显示BBU容量信息】 /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuDesignInfo -aALL 【显示BBU设计参数】 /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuProperties -aALL 【显示当前BBU属性】 /opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL 【raid卡的适配器编号,显示Raid卡型号,Raid设置,Disk相关信息】
创建raid 0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0 [22:2] -WB -RA -Cached -Cachedbadbbu -strpsz1024 -a0 这里需要根据/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll的Enclosure Device ID: 22和Slot Number: 13来确定 -strpsz1024 设置条带大小为1024K即1M,注意单位为KB 查看磁盘缓存是否打开 /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll|grep "Disk Cache Policy" 设置磁盘缓存(Disk Cache): 打开:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp EnDskCache -LAll -aAll 关闭:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp DisDskCache -LAll -aAll 设置读取策略(ReadAhead):##Default Cache Policy: WriteBack, ReadAhead, Cached, No Write Cache if Bad BBU## 打开:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp RA -LALL -aALL 设置读取缓存: 打开:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -Cached -LAll -aAll 关闭:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -Direct -LAll -aAll 设置写缓存(write cache),一定要注意,写缓存可能导致数据丢失,有电池(BBU)的情况下可以开启: 打开:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WB -LALL -aALL 关闭:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WT -LALL -aALL 设置电池BBU状态 开启WB:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp CachedBadBBU -LALL -aALL 关闭WB:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp NoCachedBadBBU -LALL -aALL 查看电池状态: /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -a0 正常 Charging Status : Charging 或者 NONE 不正常 Charging Status : discharging 查看每个raid条带大小 /opt/MegaRAID/MegaCli/MegaCli64 -cfgdsply -aALL | grep "Strip Size" 创建raid 0 /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0 [22:2] -WB -RA -Cached -Cachedbadbbu -strpsz1024 -a0 这里需要根据/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll的Enclosure Device ID: 22和Slot Number: 13来确定 -strpsz1024 设置条带大小为1024K即1M,注意单位为KB /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r5 [32:2,32:3,32:4,32:5,32:6,32:7,32:8,32:9,32:10] -WB -RA -Cached -strpsz1024 –a0 for i in `seq 1 12` ; do /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0 [22:${i}] -WB -RA -Cached -Cachedbadbbu -strpsz1024 -a0; done 删除raid /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LALL -aAll Adapter 0 -- Virtual Drive Information: Virtual Drive: 0 (Target Id: 0) ……省略…… Virtual Drive: 1 (Target Id: 1) ……省略…… 删除Adapter 0(危险) /opt/MegaRAID/MegaCli/MegaCli64 -cfgclr -a0 删除Adapter 0下的Virtual Drive: 1 /opt/MegaRAID/MegaCli/MegaCli64 -cfglddel -L1 -a0 /opt/MegaRAID/MegaCli/MegaCli64 -cfglddel -L3 -force -a0
热备盘管理
MegaCli64 -PDHSP -Set -Dedicated -Array1 -EnclAffinity -nonRevertible -PhysDrv [32:3] –aALL 设置ID3硬盘为逻辑磁盘组1的独立热备盘 ./MegaCli64 -PDHSP -Set -EnclAffinity -nonRevertible -PhysDrv [32:3] -a0 设置ID3硬盘为全局热备盘 ./MegaCli64 -PDHSP -Rmv -PhysDrv [32:3] –aALL 删除热备盘ID3
硬盘性能测试
FIO测试
基础检测方法
dd命令
dd命令功能很简单,就是从一个源读取数据以bit级的形式写到一个目标地址, 通过这种方式我们就可以检测我们实际磁盘在linux系统中的读写性能,不需要 经过任何检测软件而就是去读取数据,一般来讲用dd来检测磁盘的性能也被认为 是最接近真实情况。
用法:dd if[数据从哪里读取,一般来讲从dev下的zero设备,这个设备不断返 回0作为数据源] of[把读取的文件写入哪个文件] bs[block size,每次读写基 本快的大小] count[总共读写多少个bs] conv=fdatasync[在linux中有很强的内 存缓存机制,为了提高系统性能,linux会大量使用内存作为硬盘读写缓存,所 以这里用这个参数来保证数据是直接写入硬盘]
示例:
dd if=/dev/zero of=testfile bs=1M count=512 conv=fdatasync 在我的虚拟机上结果如下: [root@localhost ~]# dd if=/dev/zero of=testfile bs=1M count=512 conv=fdatasync 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 19.6677 s, 27.3 MB/s
一般建议多次运行这个命令取平均值,在每次执行上面的命令前,建议用下面的命令来清除缓存:
echo 3 > /proc/sys/vm/drop_caches
通过dd命令测试往往不是很严谨也不是很科学,因为可能会受cpu使用率和后台服务影响。
hdparm命令
hdparm命令专门用来去获取修改测试磁盘信息。hdparm必须在管理员权限下运行。
用法:hdparm -t 要测试的磁盘
示例:
# hdparm -t /dev/sda 结果: [root@localhost ~]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 444 MB in 3.01 seconds = 147.35 MB/sec [root@localhost ~]# hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 808 MB in 3.00 seconds = 269.21 MB/sec
可以看到两次运行结果差距比较大,所以建议多次运行取平均值。
读测试:
1.IO读 主要是I/O测试。进入linxu系统后使用相关命令来测试硬盘性能。命令如下: 2.IO写,fdatasync绕过缓冲区 dd bs=1M count=20000 if=/dev/zero of=test.dd conv=fdatasync
用这两种方式测试出来的结果是非常简单,专业测试磁盘性能时,不仅需要知道 读写性能,还要区分读写数据大小(4k/16k/32k),还要测试是顺序读写还是随 机读写,如果是机械硬盘还要测试内磁道和外磁道的速率差距等等。
高级检测方法
http://repoforge.org/ 的useage中下载对应的版本
以下以centos7 为例进行演示:
wget http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm yum install rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm -y
bonnie++
yum install -y bonnie++
-s SIZE(MiB) 用于测试IO性能的文件的大小;如果指定的文件大小大于1G,bonnie++会将其分为多个大小为1G的文件; -u 测试文件的属主和组,默认是执行bonnie++的当前用户和当前组 -d DIR 用于测试的目录,即测试目标位置; -D : 直接IO测试,用于测试大规模IO请求时的性能;open的时候,带上O_DIRECT标志,对应的代码逻辑在bon_io.cpp;
默认4G大小测试
[root@localhost ~]# bonnie++ -u root Delete files in random order...done. Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP localhost.l 257464M 697 99 624948 74 377652 48 1148 99 1157265 76 701.4 31 Latency 22028us 15784us 1870ms 16592us 226ms 267ms Version 1.96 ------Sequential Create------ --------Random Create-------- localhost.localdoma -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 26280 97 +++++ +++ +++++ +++ 26691 97 +++++ +++ +++++ +++ Latency 404us 159us 198us 423us 339us 8080us 1.96,1.96,localhost.localdomain,1,1546926116,257464M,,697,99,624948,74,377652,48,1148,99,1157265,76,701.4,31,16,,,,,26280,97,+++++,+++,+++++,+++,26691,97,+++++,+++,+++++,+++,22028us,15784us,1870ms,16592us,226ms,267ms,404us,159us,198us,423us,339us,8080us #这个格式实在有点乱,不过好在这个软件还提供了把结果转换成html表格的工具(用最后一行转换): echo 1.96,1.96,localhost.localdomain,1,1546926116,257464M,,697,99,624948,74,377652,48,1148,99,1157265,76,701.4,31,16,,,,,26280,97,+++++,+++,+++++,+++,26691,97,+++++,+++,+++++,+++,22028us,15784us,1870ms,16592us,226ms,267ms,404us,159us,198us,423us,339us,8080us | bon_csv2html >> bon_result.html
这个就好看多了,简单解释一下:
Sequential Output(顺序输出,实际是写操作)下的 Per Char是值用putc方式写,毫无疑问,因为cache的line总是大于1字节的,所以不停的骚扰CPU执行putc,看到cpu使用率是99%.写的速度是0.3MB/s,非常慢了。 Sequential Output下的block是按照block去写的,明显CPU使用率就下来了,速度也上去了,是31MB/s,跟上面用dd测试的差不多。 Sequential Input(顺序输入,实际是读操作)下的Per Char是指用getc的方式读文件,速度是2.5MB/s,CPU使用率是99%。 Sequential Input下的block是指按照block去读文件,速度是50MB/s,CPU使用率是64%。 Random Seeks是随机寻址,每秒寻址9000多次还算可以的。 Sequential Create(顺序创建文件) Random Create(随机创建文件)
有的结果是很多+号,这表示bonner++认为值不可靠,于是不输出。一般来说是因为执行的很快,一般来说不是系统瓶颈,所以不用担心。
iozone
iozone 更加精确一些
yum install iozone -y
常用选项: -l:最小的进程数量,用于并发测试,不想测多进程可以设置为1。 -u:最大的进程数量,用于并发测试,不想测多进程可以设置为1。 -r:默认读写基本单位,如16k,这个值一般跟测试的应用有关,如要测试数据库,这个值就跟数据库的块大小一致。 -s:默认读写的大小,建议这个值大一些(一般为2倍内存大小),因为iozone并不会规避低层的缓存,所以如果值比较小,可能直接在内存中就完成了。 -f filename 指定测试文件的名字,完成后会自动删除(这个文件必须指定你要测试的那个硬盘中) -F file1 file2... 指定多线程下测试的文件名 批量测试项: -g -n 指定测试文件大小范围,最大测试文件为4G,可以这样写 -g 4G -y -q 指定测试块的大小范围 输出: 下面是几个日志记录的参数.好象要输出成图象进行分析,需要指定-a的测试才能输出 -R 产生Excel到标准输出 -b 指定输出到指定文件上. 比如 -Rb ttt.xls 其它选项: -a 用来使用全自动模式。生成包括所有测试操作的报告,使用的块 大小从4k到16M,文件大小从64k到512M -i # 指定运行于哪种模式测试。可以使用-i # -i # -i #进行多个测试 0=write/rewrite 1=read/re-read 2=random read/random write 3=backwards read 4=re-write-record 5=stride-read 6=fwirte/re-fwrite 7=fread/re-fread 8=random mix 9=pwrite/re-pwrite 10=pread/re-pread 11=pwritev/re-pwritev 12=preadv/re-preadv 比如Read/Write/Random 比较常用的是0 1 2,可以指定成-i 0 -i 1 -i2 -G : 对mmap文件使用msync(MS_SYNC)。告诉操作系统在mmap空间的所有数据需要被同步的写到磁盘上 -o : 写方式是同步写到磁盘上 -B : 使用mmap()。这将使用mmap()接口来创建并访问所有测试用的临时文件。一些应用程序倾向于将文件当作内存的一块来看待。这些应用程序对文件执行mmap()调用,然后就可以以读写内存的方式访问那个块来完成文件I/O。 -t 指定线程数
测试定义:
Write: 测试向一个新文件写入的性能。当一个新文件被写入时,不仅仅是那些文件中的数据需要被存储,还包括那些用于定位数据存储在存储介质的具体位置的额外信息。这些额外信息被称作“元数据”。它包括目录信息,所分配的空间和一些与该文件有关但又并非该文件所含数据的其他数据。拜这些额外信息所赐,Write的性能通常会比Re-write的性能低。 Re-write: 测试向一个已存在的文件写入的性能。当一个已存在的文件被写入时,所需工作量较少,因为此时元数据已经存在。Re-write的性能通常比Write的性能高。 Read: 测试读一个已存在的文件的性能。 Re-Read: 测试读一个最近读过的文件的性能。Re-Read性能会高些,因为操作系统通常会缓存最近读过的文件数据。这个缓存可以被用于读以提高性能。 Random Read: 测试读一个文件中的随机偏移量的性能。许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。 Random Write: 测试写一个文件中的随机偏移量的性能。同样,许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。 Random Mix: 测试读写一个文件中的随机偏移量的性能。同样,许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。这个测试只有在吞吐量测试模式下才能进行。每个线程/进程运行读或写测试。这种分布式读/写测试是基于round robin 模式的。最好使用多于一个线程/进程执行此测试。 Backwards Read: 测试使用倒序读一个文件的性能。这种读文件方法可能看起来很可笑,事实上,有些应用确实这么干。MSC Nastran是一个使用倒序读文件的应用程序的一个例子。它所读的文件都十分大(大小从G级别到T级别)。尽管许多操作系统使用一些特殊实现来优化顺序读文件的速度,很少有操作系统注意到并增强倒序读文件的性能。 Record Rewrite: 测试写与覆盖写一个文件中的特定块的性能。这个块可能会发生一些很有趣的事。如果这个块足够小(比CPU数据缓存小),测出来的性能将会非常高。如果比CPU数据缓存大而比TLB小,测出来的是另一个阶段的性能。如果比此二者都大,但比操作系统缓存小,得到的性能又是一个阶段。若大到超过操作系统缓存,又是另一番结果。 Strided Read: 测试跳跃读一个文件的性能。举例如下:在0偏移量处读4Kbytes,然后间隔200Kbytes,读4Kbytes,再间隔200Kbytes,如此反复。此时的模式是读4Kbytes,间隔200Kbytes并重复这个模式。这又是一个典型的应用行为,文件中使用了数据结构并且访问这个数据结构的特定区域的应用程序常常这样做。 许多操作系统并没注意到这种行为或者针对这种类型的访问做一些优化。同样,这种访问行为也可能导致一些有趣的性能异常。一个例子是在一个数据片化的文件系统里,应用程序的跳跃导致某一个特定的磁盘成为性能瓶颈。 Fwrite: 测试调用库函数fwrite()来写文件的性能。这是一个执行缓存与阻塞写操作的库例程。缓存在用户空间之内。如果一个应用程序想要写很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。 这个测试是写一个新文件,所以元数据的写入也是要的。 Frewrite: 测试调用库函数fwrite()来写文件的性能。这是一个执行缓存与阻塞写操作的库例程。缓存在用户空间之内。如果一个应用程序想要写很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。 这个测试是写入一个已存在的文件,由于无元数据操作,测试的性能会高些。 Fread: 测试调用库函数fread()来读文件的性能。这是一个执行缓存与阻塞读操作的库例程。缓存在用户空间之内。如果一个应用程序想要读很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。 Freread: 这个测试与上面的fread 类似,除了在这个测试中被读文件是最近才刚被读过。这将导致更高的性能,因为操作系统缓存了文件数据。 几个特殊测试: Mmap:许多操作系统支持mmap()的使用来映射一个文件到用户地址空间。映射之后,对内存的读写将同步到文件中去。这对一些希望将文件当作内存块来使用的应用程序来说很方便。一个例子是内存中的一块将同时作为一个文件保存在于文件系统中。 mmap 文件的语义和普通文件略有不同。如果发生了对内存的存储,并不是立即发生相应的文件I/O操作。使用MS_SYNC 和MS_ASYNC标志位的 msyc()函数调用将控制内存和文件的一致性。调用msync() 时将MS_SYNC置位将强制把内存里的内容写到文件中去并等待直到此操作完成才返回。而MS_ASYNC 置位则告诉操作系统使用异步机制将内存刷新到磁盘,这样应用程序可以直接返回而不用等待此操作的完成。 这个测试就是测量使用mmap()机制完成I/O的性能。 Async I/O: 许多操作系统支持的另外一种I/O机制是POSIX 标准的异步I/O。本程序使用POSIX标准异步I/O接口来完成此测试功能。 例如: aio_write(), aio_read(), aio_error()。这个测试测量POSIX异步I/O机制的性能。
针对文件系统的测试可以按一下几项执行操作:
iozone -a -n 512m -g 4g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls
进行全面测试.最小测试文件为512M直到测试到4G.测试read,write,和Strided Read.测试的地方在mnt下。生成Excel的文件
1.多线程下的同步I/O读写测试
分别针对128K,16M,256M,2G文件大小和8进程,64进程,128进程数进行测试
主要测试文件写和重复写、读和重复读、随即读写、后向读、文件内随即点写、大间隔文件点读、文件内的随即点读写等测试项,记录大小1M cpu cache 2048kbyte。
范例:128k 文件性能测试:
iozone -s 128k -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -G -o -B -Rb iozone.xls iozone -s 128k -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 64 -G -o -B -Rb iozone.xls iozone -s 128k -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 128 -G -o -B -Rb iozone.xls
范例:16M文件性能测试
iozone -s 16M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -G -o -B -Rb iozone.xls iozone -s 16M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 64 -G -o -B -Rb iozone.xls iozone -s 16M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 128 -G -o -B -Rb iozone.xls
范例:256M文件性能测试
iozone -s 256M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -G -o -B -Rb iozone.xls iozone -s 256M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 64 -G -o -B -Rb iozone.xls iozone -s 256M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 128 -G -o -B -Rb iozone.xls
范例:2G文件性能测试
iozone -s 2G -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -G -o -B -Rb iozone.xls iozone -s 2G -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 64 -G -o -B -Rb iozone.xls iozone -s 2G -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 128 -G -o -B -Rb iozone.xls iozone -s 2G -i 0 -i 1 -i 2 -t 8 -G -o -B -F /data/iozone{1..8} iozone -s 2G -i 0 -i 1 -i 2 -t 8 -G -o -B -F ~/iozone{1..8}
2.多线程下的异步I/O读写测试
分别针对128K,16M,256M,2G文件大小和8进程,64进程,128进程数进行测试
主要测试文件写和重复写、读和重复读、随即读写、后向读、文件内随即点写、大间隔文件点读、文件内的随即点读写等测试项。
范例:
#128k 文件性能测试 iozone -s 128k -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -D -o -B -Rb iozone.xls iozone -s 128k -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 64 -D -o -B -Rb iozone.xls iozone -s 128k -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 128 -D -o -B -Rb iozone.xls #16M文件性能测试 iozone -s 16M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -D -o -B -Rb iozone.xls iozone -s 16M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 64 -D -o -B -Rb iozone.xls iozone -s 16M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 128 -D -o -B -Rb iozone.xls #256M文件性能测试 iozone -s 256M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -D -o -B -Rb iozone.xls iozone -s 256M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 64 -D -o -B -Rb iozone.xls iozone -s 256M -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 128 -D -o -B -Rb iozone.xls # 2G文件性能测试 iozone -s 2G -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 8 -D -o -B -Rb iozone.xls iozone -s 2G -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 64 -D -o -B -Rb iozone.xls iozone -s 2G -i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -t 128 -D -o -B -Rb iozone.xls
使用的脚本:
#!/bin/bash io102cmd=/eric/iozone HOSTNAME=`hostname` DATE=`date +%Y-%m-%d-%H` IP=`cat /etc/sysconfig/network-scripts/ifcfg-enp8s0 |grep "IPADDR" |awk -F '=' '{print $2}'` RECSIZE=1m THREADS=24 #max maximum value 254 disks*loops=THREADS(36*7=252) FILESIZE=12g #test data block mul disks ej:850g*36=30600g LOG=/datapool/log/${DATE}_${HOSTNAME}_io102zone_${IP}_${RECSIZE}_${FILESIZE}_${THREADS} i=0 #loop counts form 0 - 6 while [ $i -lt 2 ] do FILE1=" /datapool/io102/a${i} /datapool/io102/b${i} /datapool/io102/c${i} /datapool/io102/d${i} /datapool/io102/e${i} /datapool/io102/f${i} /datapool/io102/g${i} /datapool/io102/h${i} /datapool/io102/i${i} /datapool/io102/j${i} /datapool/io102/k${i} /datapool/io102/l${i} ${FILE1} " i=` expr $i + 1 ` done while [ 1 ] do echo $FILE1 $io102cmd -r ${RECSIZE} -s ${FILESIZE} -t ${THREADS} -F ${FILE1} -i 0 -i 1 -+n -w -+k -R -b report.xls -c -C -e >> $LOG done
iozone 自带 Generate_Graphs 命令
安装gnuplot
yum install gnuplot 或 wget http://nchc.dl.sourceforge.net/project/gnuplot/gnuplot/5.2.6/gnuplot-5.2.6.tar.gz tar xf gnuplot-5.2.6.tar.gz cd gnuplot-5.2.6/ ./configure --prefix=/public/software/gnuplot echo $? make && make install vim /etc/profile.d/gnuplot.sh export GNUPLOT=/public/software/gnuplot export PATH=/public/software/gnuplot/bin:$PATH export MANPATH=/public/software/gnuplot/share/man/man1:$MANPATH . /etc/profile 默认安装在 /opt/iozone/bin/Generate_Graphs , 可以用这个命令直接处理 iozone 的输出: # cd /opt/iozone/bin # ./iozone -a > /root/iozone.log # ./Generate_Graphs /root/iozone.log