Archive

Archive for February, 2012

hwconfig查看硬件信息

February 28th, 2012 21 comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: hwconfig查看硬件信息

最近经常要测试新硬件,了解硬件的具体型号和参数就非常重要,过去经常透过lspci, dmidecode, dmesg, ethtool, lshal, megacli等命令和各种/proc信息来了解,需要对这些工具很熟悉, 貌似比较不方便和准确。

今天看到某同学用的hwconfig感觉信息很专业,推荐给大家。这里可以下载, 感谢微博@frostwatcher同学.

hwconfig透过收集上面提到的各种信息, 然后根据wiki或者厂家公布的设备识别码, 进一步加工,给用户一个直观的信息.

不废话,效果如下:

$ uname -r
2.6.18-164.el5
$ hwconfig  -h
usage:  hwconfig [-dhnv] [-t timeout] [-r file] [-x file] [-o file]
        -d  show debugging information
        -h  show usage
        -n  don't break output lines
        -o  write output to file (- for stdout)
        -r  write raw source to file (- for stdout)
        -t  abort after timeout seconds
        -v  show version
        -x  write xml to file (- for stdout)
##简约模式
$ sudo hwconfig   
hwconfig: warning: could not run megarc; please yinst megarc
Summary:        Huawei Technologies Tecal RH2285, 2 x Xeon E5620 2.40GHz, 23.5GB / 24GB 1066MHz
System:         Huawei Technologies Tecal RH2285 (Huawei Technologies BC11BTSA)
Processors:     2 x Xeon E5620 2.40GHz 133MHz FSB (16 cores)
Memory:         23.5GB / 24GB 1066MHz == 6 x 4GB, 6 x empty
Disk:           sda (megaraid_sas0): 107GB (38%) JBOD == 1 x LSI-MegaRAID-SAS-RMB
Disk:           sdb (megaraid_sas0): 5.9TB (1%) JBOD == 1 x LSI-MegaRAID-SAS-RMB
Disk-Control:   megaraid_sas0: LSI Logic / Symbios Logic MegaRAID SAS 1078
Disk-Control:   ata_piix0: Intel 82801JI (ICH10 Family) 4 port SATA IDE Controller
Disk-Control:   ata_piix1: Intel 82801JI (ICH10 Family) 2 port SATA IDE Controller
Network:        host5 (bnx2-1): Broadcom NetXtreme II BCM5709 Gigabit Ethernet
Network:        host6 (bnx2-0): Broadcom NetXtreme II BCM5709 Gigabit Ethernet
Network:        eth0 (bnx2): 08:19:a6:24:3c:05, 1000Mb/s <full-duplex>
Network:        eth1 (bnx2): 08:19:a6:24:3c:05, 1000Mb/s <full-duplex>
OS:             RHEL Server 5.4 (Tikanga), Linux 2.6.18-164.el5 x86_64, 64-bit
BIOS:           AMI CTSAV035 12/07/2010
Hostname:       xxxxxx

##这个是非常详细的模式, 了解到各个设备的细节.
$ sudo hwconfig -x cfg.xml
$ less cfg.xml
<system code_version="1.16.7" hostname="dr4000" timestamp="1331966816" xml_version="1.0.1">
  <base_board manufacturer="Dell Inc." model="084YMW" serial="..CN137401C800C9." version="A05" />
  <bios date="10/21/2011" manufacturer="Dell Inc." pretty="Dell 1.9.0 10/21/2011" rev="1.9" version="1.9.0" />
  <chipsets summary="Intel 5500 IOH-24D B3 (Tylersburg), 82801JIR A0 (ICH10R)">
    <chipset handle="56" model="5500 IOH-24D" name="Tylersburg" pci="00:00.0" pci_handle="1" stepping="B3" type="Northbridge" vendor="Intel" />
    <chipset handle="57" model="82801JIR" name="ICH10R" pci="00:1f.0" pci_handle="19" stepping="A0" type="Southbridge" vendor="Intel" />
  </chipsets>
...
 <volume controller="scsi0" drive_write_cache="default" handle="75" name="sda" raid="RAID-0" read_ahead="adaptive" size="598879502336" spans="1" status="ok" stripe="65536">
      <drives>
        <drive>66</drive>
        <drive>67</drive>
      </drives>
      <read_cache enable="0" />
      <write_cache enable="0" policy="write-back" />
    </volume>
  </storage>
  <system manufacturer="Dell Inc." model="Dell DR4000" pretty="Dell DR4000" serial="8MCBB3X" uuid="4C4C4544-004D-4310-8042-B8C04F423358" version="" />
</system>

看着信息还是很专业的,结果微博上有同学反映是个脚本,我看了下原来hwconfig真的是个脚本:

#!/usr/bin/perl -w

# $Id$

$ENV{PATH} = "/etc/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/home/opt:/opt/MegaRAID/MegaCli:/usr/StorMan";

use strict 'vars';
use Getopt::Std;
use POSIX;
...
$ cat `which hwconfig `|wc -l    
9101

挺佩服这帮人的,脚本也能有这样的耐心,写这么长。

祝大家玩得开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: 工具介绍 Tags:

blktrace未公开选项网络保存截取数据

February 28th, 2012 No comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: blktrace未公开选项网络保存截取数据

我们透过blktrace来观察io行为的时候,第一件事情需要选择目标设备,以便分析该设备的io行为。具体使用可以参考我之前写的几篇:这里 这里 这里

blktrace分为内核部分和应用部分,应用部分收到我们要捕捉的设备名单,传给内核。内核分布在block层的各个tracepoint就会开始工作,把相关的数据透过relayfs传递到blktrace的应用部分,应用部分把这些数据记到磁盘,以便后续分析。架构参见下图:

从man blktrace中可以看到:

blktrace stores the extracted data into files stored in the local directory. The format of the file names is (by default) device.blktrace.cpu, where device is the base device name (e.g, if we are tracing /dev/sda, the base device name would be sda); and cpu identifies a CPU for the event stream

这时候问题就来了,如果我的机器只有一个设备,那么blktrace存数据文件这个动作就会影响到我们正常的IO行为。
Read more…

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: 工具介绍 Tags:

Linux系统内存相关信息获取

February 19th, 2012 No comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: Linux系统内存相关信息获取

大型的服务器,特别是数据库服务器的主要瓶颈主要在内存,CPU,以及IO上。CPU是可再生资源,不够用等等就有了;内存和土地一样是不可再生资源,被占用了,后续的使用必须等到该资源释放.而IO也非常依赖于内存的使用情况,故内存的倒腾效率会大大影响服务器的效率,那么了解服务器内存的使用情况就非常重要。

Linux内核的内存相关的信息主要有下面几个获取管道,这里我们主要讨论的是系统级别的,没具体到各个进程级别:

1. 内核启动时候,VM内存相关模块初始化信息,透过dmesg查看。
详细描述可参考这里
比如:

NUMA: Using 30 for the hash shift.
Bootmem setup node 0 0000000000000000-0000000340000000
Bootmem setup node 1 0000000340000000-0000000640000000
On node 0 totalpages: 3095549
DMA zone: 2613 pages, LIFO batch:0
DMA32 zone: 765896 pages, LIFO batch:31
Normal zone: 2327040 pages, LIFO batch:31
On node 1 totalpages: 3102720
Normal zone: 3102720 pages, LIFO batch:31

Memory: 24543920k/26214400k available (2547k kernel code, 612792k reserved, 1289k data, 208k init)

Total HugeTLB memory allocated, 0

2. /proc/meminfo。
每个字段的意思,可参考这里
比如:
Read more…

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: Linux, 调优 Tags: , ,