自己做网站开发,鲜花加盟网站建设,免费商会网站模板,湖南网站制作收费标准一、CPU性能分析工具 性能指标 工具 说明 用法举例#xff1a; 平均负载 Top Uptime Uptime#xff1a;最简单#xff1b; Top#xff1a;提供了更全的指标#xff08;平均负载、运行队列、整体的CPU使用率以及每个进程状态和CPU使用率#xff09; Top#xff1a…一、CPU性能分析工具 性能指标 工具 说明 用法举例 平均负载 Top Uptime Uptime最简单 Top提供了更全的指标平均负载、运行队列、整体的CPU使用率以及每个进程状态和CPU使用率 Top M根据驻留内存大小进行排序 P根据CPU使用百分比大小进行排序 H显示线程 c显示正在运行的进程的绝对路径 1显示每个cpu性能指标 系统整体CPU使用率 vmstat mpstat sar top Top Vmstat 系统整体的CPU使用率、上下文切换次数、中断次数还包括处于运行和不可中断状态的进程数 Mpstat 每个CPU的使用率和软硬中断CPU使用率 Sar 系统整体的CPU使用率包括可配置的历史数据 top、 vmstat、 mpstat 只可以动态杳看而 sar还可以记录历史数据。 # vmstat -w 1 刷新间隔1秒-w 扩大显示长度。 # mpstat -P ALL 1 显示所有CPU性能指标刷新间隔1秒 # sar -P ALL 1 显示所有CPU性能指标刷新间隔1秒 进程CPU使用率 Top Pidstat Ps pstree Pidstat进程和线程的CPU使用率、中断上下文切换次数 Top和ps可以按CPU使用率给进程排序而pidstat只显示实际用了CPU的进程。 Pstree显示父子进程关系 # ps -aux --sort -pmem 根据 内存使用 来升序排序 #ps -aux --sort -pcpu 根据 CPU使用 来升序排序 # pidstat 1 显示各活动进程的cpu使用统计刷新间隔1秒 # pidstat -p 4324 1 显示指定进程的CPU使用统计刷新间隔1秒 #pstree -g 显示带PID父子进程关系 系统上下文切换 vmstat 除了上下文切换次数还提供运行状态和不可中断状态进程的数量。 # vmstat -w 1 进程上下文切换 pidstat 加上 -w选项线程加上 -t 选项 # pidstat -w 1 -w 显示进程上下文切换次数重点关注自愿上下文切换和非自愿上下文切换数。 # pidstat -w -p 778 1 显示指定进程778的上下文切换次数刷新间隔1秒 # pidstat -wt 1 -t 显示线程上下文切换次数。刷新间隔1秒 软中断 Top mpstat Top、mpsta提供软硬中断CPU使用率 #mpstat -P ALL 1 硬中断 vmstat vmstat提供每秒硬中断次数 #vmstat -w 1 网络 dstat sar tcpdump dstat和sar提供总的网络接收和发送情况而tcpdump则是动态抓取正在进行的网络通讯 # dstat 1 显示总的网络接受和发送情况刷新间隔1秒 # sar -n DEV 1 显示详细网络性能刷新间隔1秒 #tcpdump -i ens33 -vnn port 22 抓取指定接口和端口的数据包 I/O dstat sar dstat和sar提供了I/O的整体情况 # dstat 1 显示全部I/O # sar -d 1 显示全部磁盘IO情况刷新间隔1秒 事件剖析 Perf Execsnoop Perf可以用来分析CPU的缓存以及内核调用链CPU调度等 Execsnoop用来监控短时进程追踪。 用法 https://github.com/brendangregg/perf-tools/blob/master/execsnoop 脚本下载x权限。 # perf top 显示占用CPU时钟最多的的函数或者指令可以用来查找热点函数。 perf top -g -p 10277 -g 开启调用关系分析-p指定进程号 # perf record -g -p 10277 保存性能事件 # perf report 查看性能事件 #./ Execsnoop 追踪短时进程瞬时进程top或ps不容易发现。
二、内存性能分析 性能指标 工具 说明 用法举例 系统已用、可用、剩余内存 free vmstat sar Free系统已用、可用、剩余内存以及缓存和缓冲区用量。 Vmstat系统剩余内存、缓存、缓冲区、换入、换出 Sar系统内存换页情况、内存使用率、缓存和缓冲区用量以及swap使用情况。 # vmstat -w 1 # free -mt # sar -r 1 显示内存利用率刷新间隔1秒 进程虚拟内存、常驻内存、共享内存 Ps Top Top、ps进程虚拟、常驻、共享内存以及缺页异常 Top M根据驻留内存大小进行排序 # ps -aux --sort -pmem 根据 内存使用 来升序排序 进程内存分布 Pmap Pmap进程地址空间和内存状态 # pmap -x 2028 -x 显示扩展格式-d 显示设备格式 进程缺页异常 Pidstat Pidstat显示各活动进程的内存使用统计缺页异常次数注意加上-r选项。 # pidstat -r 1 显示各活动进程的内存使用统计缺页异常次数刷新间隔1秒 # pidstat -r -p 3334 1 -p 显示指定进程内存使用情况刷新间隔1秒 系统换页情况 Sar Sar系统内存换页情况、内存使用率、缓存和缓冲区用量以及swap使用情况注意加上-B选项 # sar -r - B -S 1 -r显示内存使用率、-B显示内存换页、-S显示swap 刷新间隔1秒 缓存/缓存区用量 Free Vmstat Sar Slabtop Cachestat系统缓存和缓冲区的命中率 Slabtop系统slap缓存使用情况 # free -mt # vmstat -w 1 # sar -r -1 # Slabtop 实时显示内核slap缓存区的详细信息 缓存/缓存区命中率 Cachetop Cachestat Cachetop进程缓存和缓冲区的命中率 Cachestat系统缓存和缓冲区命中率 安装bcc-tools 系统内核4.1以上 # cachestat 1 # cachetop Swap换入换出 Vmstat Sar # vmstat -w 1 # sar -W 1 每秒从交换分区到系统的交换页面换入换出数量 内存泄露检查 Memleak Valgrind Valgrind进程内存错误检测器用来检测内存初始化、泄露、越界访问等各种内存错误, Valgrind不能指定PID进行分析一般用在发现内存泄漏线下分析 Memleak内存泄漏检查。 memleak -p $(pidof app) -a -p 指定进程PID-a 显示每个内存分配请求的大小以及地址 #Valgrind --toolmemcheck --leak-checkfull 执行程序名 三、文件系统和磁盘I/O性能分析 性能指标 工具 说明 用法举例 文件系统空间容量、使用量以及剩余空间 df df磁盘空间和索引节点使用量和剩余量 #df -Th 索引节点容量、使用量以及剩余量 df df: 加 – i 选项 #df -ih 页缓存和可回收Slab缓存 Sar Vmstat Sar : 加 – r 选项 #sar -r 1 #vmstat -w 1 缓冲区 Sar Vmstat Sar : 加 – r 选项 #sar -r 1 #vmstat -w 1 目录项、索引节点以及文件系统缓存 Slaptop Slaptop目录项、索引节点以及文件系统缓存 # slaptop 磁盘I/O使用率、IOPS、吞吐量、响应时间、I/O平均大小以及等待队列长度 iostat sar Dstat Iostat磁盘I/O使用率、IOPS、吞吐量、响应时间、I/O平均大小以及等待队列长度 Sar磁盘I/O使用率、IOPS、吞吐量以及响应时间 Dstat磁盘I/O使用率、IOPS、吞吐量 # iostat -d -x 1 -d –x 表示显示所有磁盘I/O性能指标 # sar -d 1 -p 显示所有磁盘I/O性能指标刷新间隔1秒 #dstat --top-mem --top-io --top-cpu 找出占用资源最高的进程和用户 进程I/O大小以及I/O延迟 Pidstat Iotop Pidstat使用 –d 选项显示进程I/O大小以及I/O延迟 Iotop按I/O大小对进程排序 # pidstat -d 1 显示活动进程I/0性能指标刷新间隔1秒 # iotop 根据I/O大小对进程进程排序 块设备I/O事件追踪 Blktrace blktrace跟踪块设备I/O事件 # blktrace -d /dev/sda -o - | blkparse -i – 输出到终端用“-”表示可是都是一堆二进制东西没法看所以需要实时blkparse来解析 Blkparse 的“-i”后加文件名blktrace输出为“-“代表终端blkparse也用“-”来代表终端解析 进程I/O系统调用追踪 Strace Perf strace通过系统调用跟踪进程的I/O perf trace跟踪内核中的I/O事件。 Strace 只可以跟踪单个进程而perf trace可以跟踪所有进程的系统调用。 # strace -p 32432 -p 指定跟踪PID号配合lsof -p 32432 分析 # strace -f -T -tt -p 32432 -f 表示跟踪子进程和线程-T 表示显示系统调用的时长-tt 显示跟踪事件。 进程块设备I/O大小跟踪 Biosnoop biotop 需要安装bcc工具包内核大于4.1 动态追踪 Ftrace Bcc Systemtap Ftrace 用于跟踪内核函数调用栈而bcc和systemtap则用于跟踪内核或应用程序的执行过程 注意内核大于4.1需要从源码安装
四、网络性能分析 性能指标 工具 说明 用法举例 吞吐量(BPS) Sar Iftop nethogs Sar查看网络接口的网络收发情况 Iftop查看IP的网络收发情况 Nethogs查看进程的网络收发情况 # sar -n DEV 1 显示所有网卡收发情况刷新间隔1秒 # iftop -i eth1 监控eth1网卡收发情况 # nethogs -d 1 eth1 eth2 查看每个进程使用的带宽,刷新间隔1秒 吞吐量(PPS) Sar # sar -n DEV 1 网络连接数 Netstat Ss Netstat显示与IP、TCP、UDP和ICMP协议相关的统计数据 Ss获取 socket 统计信息它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息而且比 netstat 更快 # ss –ltnpu 显示所有tcp/udp协议链接信息 #netstat -ltnpu 显示所有tcp/udp协议链接信息 网络错误数 Netstat Sar #netstat -i 显示数据链路层信息统计 #netstat –i 显示网络层和传输层信息统计 # sar -n EDEV 1 显示数据链路层网络信息统计 # sar -n EIP 1 显示网络层信息统计 延迟 ping hping3 Ping基于icmp协议 hping3基于tcp协议测试网络连通性。 ping -c3 114.114.114.114 hping3 –c 3 -S -p 8080 192.168.1.11 -c 表示发送3次请求、-S表示设置TCP SYN 、-p 表示端口号为80 连接跟踪数 conntrack Conntrack查看和管理连接跟踪状况 # Conntrack -L -o extended -L 表示列表 -o 表示已扩展格式显示 查看链接追踪表内容 路由 mtr route traceroute 查看路由并测试链路信息 # mtr 134.64.57.129 详细记录主机间流量状况。 #Route –n 显示本机路由表信息 #traceroute --tcp -p 80 -n taobao.com --tcp 使用tcp协议-p 表示端口-n 不对结果IP进行反向域名解析 追踪到目标主机的路由信息。 #traceroute -p 8080 -n taobao.com 使用UDP协议追踪。 DNS dig nslookup dig、nslookup排查DNS解析问题 dig可动态追踪解析过程 # nslookup www.baidu.com 查询主机DNS记录信息 #dig trace nodnssec www.baidu.com trace 表示开启动态追踪nodnssec 表示禁止DNS安全扩展 动态追踪DNS解析过程 防火墙和NAT iptables Iptables配置和管理防火墙及NAT规则 网卡功能 ethtool ethtool查看和配置网络接口 #ethtool -S eth0 查看网卡收发包统计 # ethtool -l eth0、 查看网卡是否支持多队列 抓包 Tcpdump Wireshark Tcpdump网络抓包工具 Wireshark网络抓包和图形界面分析工具 # tcpdump -nn tcp port 80 -w app.pcap 抓取80端口数据包保存为文件用Wireshark分析 内核协议栈跟踪 bcc systemtap perf Perf剖析内核协议栈的性能 Systemtap、bcc动态追踪内核协议栈的行为。 # perf record -g -p 13788 五、推荐安装工具 工具 软件包 repo镜像源 mpstat sysstat-9.0.4-22.el6.x86_64 Base Sar Base Pidstat base pstree psmisc-22.6-15.el6_0.1.x86_64 Base dstat dstat-0.7.0-1.el6.noarch Base tcpdump tcpdump-4.0.0-3.20090921gitdf3cb4.2.el6.x86_64 Base perf 2.6以上内核自带工具 base vmstat procps-3.2.8-25.el6.x86_64 Base pmap base Slabtop base Cachetop bcc-tools需要内核版本为4.1或者更新的版本 epel Cachestat epel Memleak epel blktrace blktrace-1.0.1-6.el6.x86_64 base strace strace-4.5.19-1.17.el6.x86_64 base iftop 可源码安装 epel nethogs 可源码安装 epel netstat net-tools-1.60-110.el6_2.x86_64 base ss iproute-2.6.32-31.el6.x86_64 base conntrack 源码安装conntrack-tools 内核 2.6.18 epel mtr mtr-0.75-5.el6.x86_64 base route net-tools-1.60-110.el6_2.x86_64 base traceroute traceroute-2.0.14-2.el6.x86_64 base dig bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64 base nslookup base ethtool ethtool-3.5-1.el6.x86_64 base