1、Acegene IT Co. Ltd.,1,Linux操作系统 系统优化,Acegene IT Co. Ltd.,2,Acegene IT Co. Ltd.,3,内容提要,Performance concepts and measurement tools: CPU Memory Disk I/O Network Process Profiling Kernel & Applications,Measurement Tools,Linux has measurement tools common to UNIX platforms: System Activity Reporter: sar
2、Historical database Virtual Memory Statistics: vmstat, free I/O Statistics: iostat Top Resource Consumers: top -c X-based tools: xosview, gnome-system-monitor, ksysguard, gkrellm,CPU Measurements,Identify the CPU statistics and interpret them: Idle time: %idle Executing user code: %user Executing sy
3、stem code: %system Load average: runq-sz Start with cat /proc/cpuinfo Total CPU count/speed There are several ways to see the same information, for example: CPU activity,CPU Activity - mpstat,# mpstat -P ,# mpstat -P ALL 1 1 Linux 2.4.21-15.EL (raclinux1) 08/04/2004 CPU %user %nice %system %idle int
4、r/s all 19.50 0.00 31.50 49.00 111.000 27.00 0.00 42.00 31.00 111.001 12.00 0.00 21.00 67.00 111.00,What is my CPU doing?: mpstat,CPU Activity - sar,# sar -u 2 3 Linux 2.4.21-15.EL (raclinux1) 08/04/2004 02:02:34 AM CPU %user %nice %system %idle 02:02:36 AM all 1.14 0.00 1.71 97.14 02:02:38 AM all 2
5、.62 0.00 3.66 93.72 02:02:40 AM all 0.54 0.00 3.78 95.68 Average: all 1.45 0.00 3.09 95.46,# sar -u ,What is my CPU doing?: sar,CPU Activity - iostat,# iostat -c 2 3 Linux 2.4.21-15.EL (raclinux1) 08/04/2004 avg-cpu: %user %nice %sys %idle5.73 0.00 17.16 77.11 avg-cpu: %user %nice %sys %idle4.62 0.0
6、0 27.18 68.21 avg-cpu: %user %nice %sys %idle9.55 0.00 35.96 54.49,# iostat -c ,What is my CPU doing?: iostat,Linux Virtual Memory,Each process is assigned a contiguous address space in virtual memory that maps process memory allocations to the real memory User address space is a contiguous set of p
7、ages and is limited to 4GB per process Physical Address Extension (PAE), allows access to more than 4GB of physical memory RHat: enterprise kernel (implied SMP) SuSE: 64GB kernel (implied SMP),Swap,Swap space (disk),Physical memory (RAM),Virtual memory,Swapped-in pages,Swapped-out pages,Measuring Sw
8、ap,How much is available/used? swapon -s (cat /proc/swaps) vmstat so: Amount of memory KB/s SWAP OUT to disk si: Amount of memory KB/s SWAP IN from disk swapd: Amount of virtual memory KB reserved Create/Add more? # mkswap /dev/sdc3 fstab: /dev/sdc3 swap swap pri=42 0 0,Memory Usage,Kernel (not page
9、d),Shared memory,Process memory,Process memory,Process memory,Page cache,Buffer cache,Kernel modules,Dynamically adjusted,Paged,Paged/locked,Not paged,Measure memory utilization and paging. Identify the significant memory statistics. cat /proc/meminfo (units KB) MemTotal: Total physical memory MemFr
10、ee: Total free memory LowFree: Free memory below 1GB physical Buffers: Linux Buffer Cache Cached: Linux Page Cache BigFree: Free bigpages memory,Measuring Memory Usage,No Free Memory?,free command reports a very low number, should I be worried Its OK if Linux buffer or page cache are big Look in -/+
11、 buffer/cache row of free for projected free memory Very useful stat,Memory - sar,-B paging statistics -R memory statistics -W swapping statistics,#sar -B #sar -R ,Acegene IT Co. Ltd.,16,Measuring Disk I/O,You should monitor the I/O across all devices and look for slow devices using: sar, iostat, vm
12、stat Archive collected statistics for comparison,Acegene IT Co. Ltd.,17,Network Traffic,Check the following sources of network traffic: Oracle SQL*Net Servicing SQL connections Interconnect in RAC environment Network file system Samba HTTP server Start with sar -n DEV iptraf also very useful,sar Fla
13、gs,-f read from sar historical file /var/log/sa/ -s -e start/end times -s hh:mm:ss -r memory/swap utilization -c process creation activity -w context switching activity,Acegene IT Co. Ltd.,19,Process Specific,Specific process is a suspect: System call trace: strace p Library call trace: ltrace p Det
14、ailed process statistics: ps o Try: ps -e -o pid,ppid,pcpu,rss,vsz,pri,wchan,cmd Who has my file open? lsof -p pid For Process Tree, use pstree p Not seeing a process, its probably a thread, try: ps -efm,Acegene IT Co. Ltd.,20,What Does the Kernel Do?,Its possible to profile the kernel and identify
15、where its spending time: Boot with “profile=2 nmi_watchdog=1” Either in Lilo or Grub or add manually at boottime Use readprofile -m Start with readprofile -r (to reset counters) Very easy to use, but useful only if you see high system time. To profile user applications use oprofile http:/ IT Co. Ltd
16、.,21,System Wide,RDA (Remote Diagnostic Agent) http:/ Lshw (Hardware Lister) http:/ IT Co. Ltd.,22,Summary: Linux Monitoring Tools,Overall tools sar , vmstat CPU /proc/cpuinfo , mpstat , top Memory /proc/meminfo , /proc/slabinfo Disk I/O iostat, sar Network iptraf, netstat, mii-tool Individual process debugging strace , ltrace, lsof,A,Acegene IT Co. Ltd.,24,练习,执行下列命令 sar , vmstat /proc/cpuinfo , mpstat , top /proc/meminfo , /proc/slabinfo iostat, sar iptraf, netstat, mii-tool strace , ltrace, lsof,