1、Linux性能分析与调整命令汇总Linux性能分析与调整命令汇总CPU性能分析工具:vmstatpssartimestracepstreetopMemory性能分析工具:vmstatstracetopipcsipcrmcat /proc/meminfocat /proc/slabinfocat /proc/ /mapsI/O性能分析工具:vmstatipstatrepquotaquotacheckNetwork性能分析工具:ifconfigetherealtetherealiptrafiwconfignfsstatmrtgntopnetstatcat /proc/sys/netLinux 性能
2、调优工具当通过上述工具及命令,我们发现了应用的性能瓶颈以后,我们可以通过以下工具或者命令来进行性能的调整。CPU性能调优工具:nice / renicsysctlMemory性能调优工具:swaponulimitsysctlI/O性能调优工具:edquotaquotonsysctlboot line:elevator=Network性能调优工具:ifconfigiwconfigsysctlCPU性能调整当一个系统的CPU空闲时间或者等待时间小于5%时,我们就可以认为系统的CPU资源耗尽,我们应该对CPU进行性能调整。CPU性能调整方法:编辑/proc/sys/kernel/中的文件,修改内核参
3、数。#cd /proc/sys/kernel/# ls /proc/sys/kernel/acct hotplug panic real-root-devcad_pid modprobe panic_on_oops semcap-bound msgmax pid_max shmallcore_pattern msgmnb powersave-nap shmmaxcore_uses_pid msgmni print-fatal-signals shmmnictrl-alt-del ngroups_max printk suid_dumpabledomainname osrelease print
4、k_ratelimit sysrqexec-shield ostype printk_ratelimit_burst taintedexec-shield-randomize overflowgid pty threads-maxhostname overflowuid random version一般可能需要编辑的是pid_max和threads-max,如下:# sysctl kernel.threads-maxkernel.threads-max = 8192# sysctl kernel.threads-max=10000kernel.threads-max = 10000Memory
5、性能调整当一个应用系统的内存资源出现下面的情况时,我们认为需要进行Memory性能调整:页面频繁换进换出;缺少非活动页。例如在使用vmstat命令时发现,memory的cache使用率非常低,而swap的si或者so则有比较高的数据值时,应该警惕内存的性能问题。Memory性能调整方法:1。关闭非核心的服务进程。相关的方法请见CPU性能调整部分。2。修改/proc/sys/vm/下的系统参数。# ls /proc/sys/vm/block_dump laptop_mode nr_pdflush_threadsdirty_background_ratio legacy_va_layout ove
6、rcommit_memorydirty_expire_centisecs lower_zone_protection overcommit_ratiodirty_ratio max_map_count page-clusterdirty_writeback_centisecs min_free_kbytes swappinesshugetlb_shm_group nr_hugepages vfs_cache_pressure# sysctl vm.min_free_kbytesvm.min_free_kbytes = 1024# sysctl -w vm.min_free_kbytes=250
7、8vm.min_free_kbytes = 2508# cat /etc/sysctl.confvm.min_free_kbytes=20583。配置系统的swap交换分区等于或者2倍于物理内存。# freetotal used free shared buffers cachedMem: 987656 970240 17416 0 63324 742400-/+ buffers/cache: 164516 823140Swap: 199* *72 1848568I/O性能调整系统出现以下情况时,我们认为该系统存在I/O性能问题:系统等待I/O的时间超过50%;一个设备的平均队列长度大于5。我
8、们可以通过诸如vmstat等命令,查看CPU的wa等待时间,以得到系统是否存在I/O性能问题的准确信息。I/O性能调整方法:1。修改I/O调度算法。Linux已知的I/O调试算法有4种:deadline Deadline I/O scheduleras Anticipatory I/O schedulercfq Complete Fair Queuing schedulernoop Noop I/O scheduler可以编辑/etc/yaboot.conf文件修改参数elevator得到。# vi /etc/yaboot.confimage=/vmlinuz-2.6.9-11.ELlabel
9、=linuxread-onlyinitrd=/initrd-2.6.9-11.EL.imgroot=/dev/VolGroup00/LogVol00append=”elevator=cfq rhgb quiet”2。文件系统调整。对于文件系统的调整,有几个公认的准则:将I/O负载相对平均的分配到所有可用的磁盘上;选择合适的文件系统,Linux内核支持reiserfs、ext2、ext3、jfs、xfs等文件系统;# mkfs -t reiserfs -j /dev/sdc1文件系统即使在建立后,本身也可以通过命令调优;tune2fs (ext2/ext3)reiserfstune (reise
10、rfs)jfs_tune (jfs)3。文件系统Mount时可加入选项noatime、nodiratime。# vi /etc/fstab/dev/sdb1 /backup reiserfs acl, user_xattr, noatime, nodiratime 1 14。调整块设备的READAHEAD,调大RA值。rootoverflowuid # blockdev reportRO RA SSZ BSZ StartSec Size Devicerw 256 512 4096 0 71096640 /dev/sdbrw 256 512 4096 32 71094240 /dev/sdb1r
11、ootoverflowuid # blockdev setra 2048 /dev/sdb1rootoverflowuid # blockdev reportRO RA SSZ BSZ StartSec Size Devicerw 2048 512 4096 0 71096640 /dev/sdbrw 2048 512 4096 32 71094240 /dev/sdb1Network性能调整一个应用系统出现如下情况时,我们认为该系统存在网络性能问题:网络接口的吞吐量小于期望值;出现大量的丢包现象;出现大量的冲突现象。Network性能调整方法:1。调整网卡的参数。# ethtool eth0
12、Settings for eth0:Supported ports: TP Supported link modes: 10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullSupports auto-negotiation: YesAdvertised link modes: 10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullAdvertised auto-negotiation: YesSpeed: 100Mb/sDuplex: H
13、alfPort: Twisted PairPHYAD: 0Transceiver: internalAuto-negotiation: onSupports Wake-on: dWake-on: dCurrent message level: 000000007 (7)Link detected: yes#ethtool -s eth0 duplex full#ifconfig eth0 mtu 9000 up2。增加网络缓冲区和包的队列。# cat /proc/sys/net/ipv4/tcp_mem196608 262144 393216# cat /proc/sys/net/core/r
14、mem_default135168# cat /proc/sys/net/core/rmem_max131071# cat /proc/sys/net/core/wmem_default135168# cat /proc/sys/net/core/wmem_max131071# cat /proc/sys/net/core/optmem_max20480# cat /proc/sys/net/core/netdev_max_backlog300# sysctl net.core.rmem_maxnet.core.rmem_max = 131071# sysctl -w net.core.rmem_max=135168net.core.rmem_max = 1351683。调整Webserving。# sysctl net.ipv4.tcp_tw_reusenet.ipv4.tcp_tw_reuse = 0# sysctl -w net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_tw_reuse = 1# sysctl net.ipv4.tcp_tw_recyclenet.ipv4.tcp_tw_recycle = 0# sysctl -w net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_tw_recycle = 1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1