1、常用性能分析工具
1)CPU性能分析工具
vmstat
ps
sar
time
strace
pstree
top

2)Memory性能分析工具
vmstat
strace
top
ipcs
ipcrm
cat /proc/meminfo
cat /proc/slabinfo
cat /proc/ /maps

3)I/O性能分析工具
vmstat
ipstat
repquota
quotacheck

4)Network性能分析工具
ifconfig
ethereal
tethereal
iptraf
iwconfig
nfsstat
mrtg
ntop
netstat
cat /proc/sys/net

2、Linux性能调优工具
   当通过上述工具及命令,我们发现了应用的性能瓶颈以后,我们可以通过以下工具或者命令来进行性能的调整。
1)CPU性能调优工具
nice / renic
sysctl

2)Memory性能调优工具
swapon
ulimit
sysctl

3)I/O性能调优工具
edquota
quoton
sysctl
boot line:
elevator=

4)Network性能调优工具
ifconfig
iwconfig
sysctl

3、CPU性能调整
   当一个系统的CPU空闲时间或者等待时间小于5%时,我们就可以认为系统的CPU资源耗尽,我们应该对CPU进行性能调整。
CPU性能调整方法:
编辑/proc/sys/kernel/中的文件,修改内核参数。
#cd /proc/sys/kernel/
# ls /proc/sys/kernel/
acct hotplug panic real-root-dev
cad_pid modprobe panic_on_oops sem
cap-bound msgmax pid_max shmall
core_pattern msgmnb powersave-nap shmmax
core_uses_pid msgmni print-fatal-signals shmmni
ctrl-alt-del ngroups_max printk suid_dumpable
domainname osrelease printk_ratelimit sysrq
exec-shield ostype printk_ratelimit_burst tainted
exec-shield-randomize overflowgid pty threads-max
hostname overflowuid random version
一般可能需要编辑的是pid_max和threads-max,如下:
# sysctl kernel.threads-max
kernel.threads-max = 8192
# sysctl kernel.threads-max=10000
kernel.threads-max = 10000

 

4、Memory性能调整
当一个应用系统的内存资源出现下面的情况时,我们认为需要进行Memory性能调整:页面频繁换进换出;缺少非活动页。例如在使用vmstat命令时发现,memory的cache使用率非常低,而swap的si或者so则有比较高的数据值时,应该警惕内存的性能问题。
Memory性能调整方法:
1)关闭非核心的服务进程。
相关的方法请见CPU性能调整部分。

2)修改/proc/sys/vm/下的系统参数。
# ls /proc/sys/vm/
block_dump laptop_mode nr_pdflush_threads
dirty_background_ratio legacy_va_layout overcommit_memory
dirty_expire_centisecs lower_zone_protection overcommit_ratio
dirty_ratio max_map_count page-cluster
dirty_writeback_centisecs min_free_kbytes swappiness
hugetlb_shm_group nr_hugepages vfs_cache_pressure
# sysctl vm.min_free_kbytes
vm.min_free_kbytes = 1024
# sysctl -w vm.min_free_kbytes=2508
vm.min_free_kbytes = 2508
# cat /etc/sysctl.conf

vm.min_free_kbytes=2058

3)配置系统的swap交换分区等于或者2倍于物理内存。
# free
total used free shared buffers cached
Mem: 987656 970240 17416 0 63324 742400
-/+ buffers/cache: 164516 823140
Swap: 1998840 150272 1848568

5、I/O性能调整
系统出现以下情况时,我们认为该系统存在I/O性能问题:系统等待I/O的时间超过50%;一个设备的平均队列长度大于5。我们可以通过诸如vmstat等命令,查看CPU的wa等待时间,以得到系统是否存在I/O性能问题的准确信息。
I/O性能调整方法:
1)修改I/O调度算法。
Linux已知的I/O调试算法有4种:
deadline – Deadline I/O scheduler
as – Anticipatory I/O scheduler
cfq – Complete Fair Queuing scheduler
noop – Noop I/O scheduler
可以编辑/etc/yaboot.conf文件修改参数elevator得到。
# vi /etc/yaboot.conf
image=/vmlinuz-2.6.9-11.EL
label=linux
read-only
initrd=/initrd-2.6.9-11.EL.img
root=/dev/VolGroup00/LogVol00
append=”elevator=cfq rhgb quiet”

2)文件系统调整。
对于文件系统的调整,有几个公认的准则:将I/O负载相对平均的分配到所有可用的磁盘上;选择合适的文件系统,Linux内核支持reiserfs、ext2、ext3、jfs、xfs等文件系统;
# mkfs -t reiserfs -j /dev/sdc1
文件系统即使在建立后,本身也可以通过命令调优;
tune2fs (ext2/ext3)
reiserfstune (reiserfs)
jfs_tune (jfs)

3)文件系统Mount时可加入选项noatime、nodiratime。
# vi /etc/fstab

/dev/sdb1 /backup reiserfs acl, user_xattr, noatime, nodiratime 1 1

4)调整块设备的READAHEAD,调大RA值。
[root@overflowuid ~]# blockdev –report
RO RA SSZ BSZ StartSec Size Device

rw 256 512 4096 0 71096640 /dev/sdb
rw 256 512 4096 32 71094240 /dev/sdb1
[root@overflowuid ~]# blockdev –setra 2048 /dev/sdb1
[root@overflowuid ~]# blockdev –report
RO RA SSZ BSZ StartSec Size Device

rw 2048 512 4096 0 71096640 /dev/sdb
rw 2048 512 4096 32 71094240 /dev/sdb1

6、Network性能调整
一个应用系统出现如下情况时,我们认为该系统存在网络性能问题:网络接口的吞吐量小于期望值;出现大量的丢包现象;出现大量的冲突现象。
Network性能调整方法:
1)调整网卡的参数。
# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Half
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Current message level: 0×00000007 (7)
Link detected: yes
#ethtool -s eth0 duplex full
#ifconfig eth0 mtu 9000 up

2)增加网络缓冲区和包的队列。
# cat /proc/sys/net/ipv4/tcp_mem
196608 262144 393216
# cat /proc/sys/net/core/rmem_default
135168
# cat /proc/sys/net/core/rmem_max
131071
# cat /proc/sys/net/core/wmem_default
135168
# cat /proc/sys/net/core/wmem_max
131071
# cat /proc/sys/net/core/optmem_max
20480
# cat /proc/sys/net/core/netdev_max_backlog
300
# sysctl net.core.rmem_max
net.core.rmem_max = 131071
# sysctl -w net.core.rmem_max=135168
net.core.rmem_max = 135168

3)调整Webserving。
# sysctl net.ipv4.tcp_tw_reuse
net.ipv4.tcp_tw_reuse = 0
# sysctl -w net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_reuse = 1
# sysctl net.ipv4.tcp_tw_recycle
net.ipv4.tcp_tw_recycle = 0
# sysctl -w net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_recycle = 1

 

iperf:网络带宽测量工具
ipcs:报告进程间通信设施状态,关于当前活动消息队列、共享内存段、信号量、远程队列和本地队列标题。
ipcrm:删除消息队列、信号集、或者共享内存标识
quota:磁盘管理命令。显示磁盘使用情况和限额
repquota:磁盘管理命令。报告磁盘空间限制的状况,清楚得知每位用户或每个群组已使用多少空间
edquota:磁盘管理命令。编辑用户或群组的quota
quotacheck:磁盘管理命令。检查磁盘的使用空间与限制,执行quotacheck指令,扫描挂入系统的分区,并在各分区的文件系统根目录下产生quota.user和quota.group文件,设置用户和群组的磁盘空间限制。
quoton:磁盘管理命令。启动系统quota限制硬盘使用空间
sysctl:配置与显示在/proc/sys目录中的内核参数。一个允许您改变正在运行中的Linux系统的接口。它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。基于这点,sysctl(8) 提供两个功能:读取和修改系统设置。可以使用sysctl修改系统变量,也可以通过编辑sysctl.conf文件来修改系统变量。
tethereal:类似tcpdump的抓包工具
iptraf:网络流量实时监控工具
nfsstat:查看NFS服务器状态,显示关于NFS和到内核的远程过程调用(RPC)接口的统计信息,也可以使用该命令重新初始化该信息
mrtg:监控网络链路流量负载的工具软件,通过snmp协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML 文档方式显示给用户,以非常直观的形式显示流量负载
ntop:监控网络流量工具,同时提供命令行输入和web页面,可应用于嵌入式web服务
mkswap:设置交换区(swap area),可将磁盘分区或文件设为Linux的交换区
swapon:激活/开启swap
swapoff:关闭swap
ulimit:控制/限定shell程序的资源

Linux性能分析调优工具介绍的更多相关文章

  1. mysql性能瓶颈分析、性能指标、指标搜集方法与性能分析调优工具

    本文主要讲解mysql的性能瓶颈分析.性能指标.性能指标信息的搜集工具与方法.分析调优工具的使用. 文章尚未完成. 性能瓶颈: 慢.写速度比读速度慢很多  主要的性能指标: 访问频度, 并发连接量, ...

  2. Linux 性能分析调优 (四)——案例篇:系统中出现大量不可中断进程和僵尸进程怎么办

    之前讲到 CPU 使用率的类型.除了上一节提到的用户 CPU 之外,它还包括系统 CPU(比如上下文切换).等待 I/O 的 CPU(比如等待磁盘的响应)以及中断 CPU(包括软中断和硬中断)等. 在 ...

  3. Android系统性能调优工具介绍

    http://blog.csdn.net/innost/article/details/9008691 经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优 ...

  4. 《linux性能及调优指南》 3.5 网络瓶颈

    3.5 Network bottlenecks A performance problem in the network subsystem can be the cause of many prob ...

  5. 《Linux 性能及调优指南》写在后面的话

    感谢飞哥的翻译. 目前飞哥 (http://hi.baidu.com/imlidapeng)的网址已经不能访问了. <Linux 性能及调优指南>这本书的原文地址:http://www.r ...

  6. 《Linux性能及调优指南》第二章:监控和基准工具2.1-2.2

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  7. 《Linux 性能及调优指南》2.4 基准工具

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  8. 《Linux 性能及调优指南》2.3 监控工具

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

  9. 《Linux 性能及调优指南》1.5 网络子系统

    翻译:飞哥 (http://hi.baidu.com/imlidapeng) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance a ...

随机推荐

  1. Redis基础对象

    Redis 中每个对象都由一个 redisObject 结构表示 typedef struct redisObject { //类型 unsigned type:; //编码 unsigned enc ...

  2. hdu1150&&POJ1325 Machine Schedule---最小点覆盖

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1150 题目大意: 给你两台机器A和B,A机器有n种模式,B机器有m种模式,初始时都是0,现在给你k个 ...

  3. vuejs组件的重要选项

    new Vue({ el:'#demo', data:{ message:'Hello vue.js!' } }) 我们看到这个括号里面包含了很多中间的选项,小括号里面其实是一些参数,这些参数指定了实 ...

  4. 2018.6.16 PHP小实验

    PHP实验 实验一 <?php /** * Created by PhpStorm. * User: qichunlin * Date: 2018/5/17 * Time: 下午5:35 */ ...

  5. 2017.12.25 Linux系统的使用

    Linux系统的使用 现在标配的系统是 Linux + Nginx + PHP + MySQL ,这样的配置越来越多的大公司在用的了说到配置不同的是一个公司的规约,比如说挂载一般分为2个盘, / 下面 ...

  6. CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第七节

    第七节:使用下一代CUDA硬件,快乐加速度 原文链接 Rob Farber 是西北太平洋国家实验室(Pacific Northwest National Laboratory)的高级科研人员.他在多个 ...

  7. MySQL - UNION 和 UNION ALL 操作符

    UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SE ...

  8. 进入docker容器并执行命令的的3中方法

    进入docker容器并执行命令的的3中方法 docker exec   nsenter   docker attach "container" 建议使用nsenter, exec有 ...

  9. 震惊!几道Python 理论面试题,Python面试题No18

    本面试题题库,由公号:非本科程序员 整理发布 第1题: 简述解释型和编译型编程语言? 解释型语言编写的程序不需要编译,在执行的时候,专门有一个解释器能够将VB语言翻译成机器语言,每个语句都是执行的时候 ...

  10. 【104】Maven3.5.0结合eclipse使用,提示Lambda expressions are allowed only at source level 1.8 or above错误的解决方法

    错误重现 我的机器上安装了 maven 3.5.0,在 eclipse 中创建 maven 项目.pom.xml配置如下: <project xmlns="http://maven.a ...