linux调优 性能优化

  • OS
    • System Libraries
      • ltrace, perf
    • System Call Interface
      • strace, sysdig
    • Sockets
      • ss, netstat
    • TCP/UDP
      • netstat, iptraf(监控流量)
  • IP
    • netstat, iptraf
  • Ethernet
    • netstat, iptraf, tcpdump
  • Block Device Interface、I/O Controller、Disk
    • pidstat, iostat, iotop, blktrace
  • Linux Kernel
    • perf, ftrace, stap, ktap,ebpf, dtrace, lttng
  • Scheduler
    • perf, mpstat, top, ps
  • Virtual Memory
    • top, ps, pidstat, vmstat, slabtop, free
  • I/O Bus
    • pref, tiptop
  • Network Controller
    • nicstat, netstat, ip
  • Port
    • iptraf, nicstat, netstat, ip, ethtool, snmpget 1ldptool
  • Hardware
    • CPU
      • perf, mpstat, top, ps, pidstat
    • Memory Bus (CPU - DRAM)
      • perf, tiptop
    • DRAM
      • vmstat, slabtop, free
    • Various
      • sar, dstat, /proc


sysdig 跟踪系统调用 

slabtop 跟踪salb使用情况  /proc/slabinfo 

mpstat  显示各个cpu上面的细分cpu 占用率

pidstat  显示各进程的细分cpu占用率

systemtap kprobe 的封装,使用脚本语言,较kprobe 好使用。

ftrace systemtap lttng   内核跟踪工具 

blktrace  跟踪磁盘 块设备层的活动

nfsiostat 

lockstat 分析锁情况 

chrt 动态调整优先级  taskset 设置进程亲缘性 nice renice 

sar sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等

perf 工具,性能调试必备工具。 

ftrace  ()

dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具.

查看: /proc/pid/sched /proc/pid/sche_debug    sched_migration_cost   

性能调优 点:

1. 线程绑核 (线程不停的迁移有可能花费很多时间)

2. 编译选项 -O2 

3. 函数改成内联

4. 循环 内大外小

5. 关闭高精度定时器 ,使用外部timer 作为时钟源 

6. 中断改成轮循

7.  锁,检查锁冲突    提高锁的优先级, 可以考虑使用rt 锁, 避免优先级反转导致锁等待时间长 

8. 设置中断亲缘性 /proc/irq/irq_name/smp_affinity 


kvm退出次数  /sys/kernel/debug/kvm/exits 


x86 cache miss 调试工具  vtune工具 


perf 使用方法:

perf -g 调用栈

perf  kmem 内存申请情况

perf sched latency 调度时延

perf stat -r <n> -a sleep 

perf recore -a sleep <n>


性能优化点:

1. 小函数内联化  (减少压栈、弹栈的操作)

2. 重新排列函数位置,减少调用很远的函数,减少cache miss 

3. 内存屏障 (根据情况,确认是否可去掉,如果去掉则会提升性能)

4. 减少branch miss , 使用likely 和unlikely 


应用程序代码优化点:

1. 编译选项, -mapcs-frame   (-fomit-frame-pointer  将不产生标准栈帧)

2. 热点函数获取,  perf 和oprofile 工具

3. 消息、内存、信号量,锁冲突,  资源阻塞点

4. 排查代码变化 


参考手册

http://kernel.taobao.org/images/3/31/Linux%E7%9A%84%E7%B3%BB%E7%BB%9F%E7%BA%A7%E6%80%A7%E8%83%BD%E5%89%96%E6%9E%90%E5%B7%A5%E5%85%B7-perf-2.pdf












  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值