2009年3月17日星期二

常用的Linux系统分析和调优命令

1. ldd
查找命令需要的动态连接库
yangguo:~ # ldd /bin/ls
linux-gate.so.1 => (0xffffe000)
librt.so.1 => /lib/librt.so.1 (0xb8068000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb804b000)
libacl.so.1 => /lib/libacl.so.1 (0xb8042000)
libc.so.6 => /lib/libc.so.6 (0xb7ee6000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7ecb000)
/lib/ld-linux.so.2 (0xb8096000)
libdl.so.2 => /lib/libdl.so.2 (0xb7ec6000)
libattr.so.1 => /lib/libattr.so.1 (0xb7ec0000)

2. ltrace
查看进程的库调用
yangguo:~ # ltrace -c find ~

% time seconds usecs/call calls function
------ ----------- ----------- --------- --------------------
92.49 2.245147 12070 186 readdir64
4.72 0.114615 3274 35 __fxstatat64
0.52 0.012696 147 86 memcpy
0.41 0.009919 23 425 __errno_location
0.38 0.009212 9212 1 dcgettext
0.16 0.003963 46 85 __fprintf_chk
0.16 0.003896 19 203 strlen
0.13 0.003162 19 166 free
[.....]
0.00 0.000019 19 1 textdomain
------ ----------- ----------- --------- --------------------
100.00 2.427575 2091 total

3. strace
查看进程运行的系统调用
yangguo:~ # strace -e open ls .bashrc
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/librt.so.1", O_RDONLY) = 3
open("/lib/libselinux.so.1", O_RDONLY) = 3
open("/lib/libacl.so.1", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/lib/libpthread.so.0", O_RDONLY) = 3
open("/lib/libdl.so.2", O_RDONLY) = 3
open("/lib/libattr.so.1", O_RDONLY) = 3
open("/dev/urandom", O_RDONLY) = 3


4. file
查看文件类型
yangguo:~ # file /usr/bin/file
/usr/bin/file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), stripped

5. mount
列出文件系统的安装点情况
yangguo:~ # mount
/dev/sda7 on / type ext3 (rw,acl,user_xattr)
/proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/sda8 on /home type reiserfs (rw,acl,user_xattr)
/dev/sda1 on /windows/c type fuseblk (rw,noexec,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sda5 on /windows/d type fuseblk (rw,noexec,nosuid,nodev,allow_other,default_permissions,blksize=4096)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
securityfs on /sys/kernel/security type securityfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
gvfs-fuse-daemon on /home/fong/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=fong)

6. df
查看文件系统的使用情况
yangguo:~ # df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda7 15G 7.2G 7.0G 51% /
udev 987M 632K 986M 1% /dev
/dev/sda8 35G 26G 8.9G 75% /home
/dev/sda1 36G 20G 16G 55% /windows/c
/dev/sda5 54G 28G 27G 51% /windows/d

7. du
查看文件目录的大小
yangguo:~ # du -sh /lost+found/
16K /lost+found/

8. readelf
读取elf二进制文件的内容
yangguo:~ # readelf --file-header /bin/ls
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x8049ba0
Start of program headers: 52 (bytes into file)
Start of section headers: 99276 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 9
Size of section headers: 40 (bytes)
Number of section headers: 32
Section header string table index: 31

9. stat
查看文件属性
yangguo:~ # stat --filesystem /etc/profile
File: "/etc/profile"
ID: 8d9614f821ddde52 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 3870200 Free: 2007970 Available: 1811375
Inodes: Total: 983040 Free: 667527

10. lspci
查看pci硬件信息, 使用 -v 可以查看详细信息。
yangguo:~ # lspci
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)
00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port (rev 0c)
00:19.0 Ethernet controller: Intel Corporation 82566MM Gigabit Network Connection (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 4 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HBM (ICH8M-E) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
01:00.0 VGA compatible controller: nVidia Corporation Quadro NVS 140M (rev a1)
03:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)
15:00.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b6)

11. lsusb
查看usb设备信息, 使用 -v 可列出详细信息。
yangguo:~ # lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 04b3:3107 IBM Corp. ThinkPad 800dpi Optical Travel Mouse
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 003: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 003 Device 002: ID 0a5c:2110 Broadcom Corp. Bluetooth Controller
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

12. netstat
列出网络连接情况,包括路由(-r),接口(-i), masquerade连接(-M),统计信息(-s),广播信息(-g)和各种协议 TCP (-t), UDP (-u), or raw (-r)
yangguo:~ # netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
147.2.212.0 * 255.255.255.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default 147.2.212.254 0.0.0.0 UG 0 0 0 eth0

13. /proc文件系统
/proc是一个伪文件系统,用来保存总要的内核信息。
13.1 /proc/cpuinfo, 查看cpu信息
yangguo:~ # cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU T8300 @ 2.40GHz
stepping : 6
cpu MHz : 800.000
cache size : 3072 KB

/proc/interrupts:使用的中断
/proc/devices: 可用的设备
/proc/modules:装载的内核模块
/proc/cmdline:内核命令行
/proc/meminfo:具体的内存使用情况
/proc/config.gz:正在运行的内核压缩配置文件
/proc/NNN : 具体某个进程的运行情况,其中NNN是PID

14. procinfo
查看/proc文件系统中重要信息的总体情况
yangguo:~ # procinfo
Linux 2.6.27.19-5-pae (geeko@buildhost) (gcc 4.3.2) #1 SMP 2009-02-28 04:40:21 +0100 2CPU [yangguo.]

Memory: Total Used Free Shared Buffers Cached
Mem: 2019620 1816992 202628 0 124348 976736
Swap: 4192924 984 4191940

Bootup: Tue Mar 17 09:56:04 2009 Load average: 2.24 2.28 1.53 3/372 3209

user : 2:21:47.06 27.3% page in : 4737423 disk 1: 299547r 253876w
nice : 0:00:11.15 0.0% page out: 7381544
system: 0:18:04.21 3.5% page act: 923262
IOwait: 0:31:45.83 6.1% page dea: 618072
hw irq: 0:00:23.38 0.1% page flt: 118613486
sw irq: 0:00:17.70 0.0% swap in : 219
idle : 5:36:29.85 64.9% swap out: 326
uptime: 4:19:12.73 context : 39369113

irq 0: 10709293 timer irq 18: 0 uhci_hcd:usb7
irq 1: 20459 i8042 irq 19: 2 ehci_hcd:usb2
irq 8: 1 rtc0 irq 20: 294 uhci_hcd:usb3
irq 9: 17710 acpi irq 21: 0 uhci_hcd:usb4
irq 12: 1275484 i8042 irq 22: 3 ehci_hcd:usb1
irq 14: 150963 ata_piix irq215: 254583 iwlagn
irq 15: 0 ata_piix irq216: 282251 eth0
irq 16: 31118 uhci_hcd:usb5, yenta irq217: 568250 ahci
irq 17: 2030 uhci_hcd:usb6, HDA In


没有评论: