Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

工具推荐

本附录汇总了开发、调试、性能分析等各个场景下常用的工具,帮助读者提升开发效率和问题排查能力。

一、系统与性能分析工具

Linux系统工具

工具名称用途
top/htop实时查看系统整体的CPU、内存、进程运行情况
vmstat查看虚拟内存、CPU、上下文切换等系统整体统计信息
iostat查看磁盘IO使用率、IOPS、吞吐量、延迟等磁盘性能指标
pidstat查看单个进程的CPU、内存、IO、线程等详细统计
perfLinux性能计数器,分析CPU热点函数、缓存命中率、调用栈等
free查看系统内存使用情况
df/du查看磁盘空间使用和目录大小
ss/netstat查看网络连接、端口监听、网络统计信息
sar系统活动报告,查看历史性能数据
dstat全能系统统计工具,同时显示CPU、磁盘、网络、分页等信息
strace跟踪进程的系统调用,排查IO、阻塞等问题
lsof查看进程打开的文件、网络连接等信息
tcpdump/Wireshark网络抓包分析工具,排查网络问题
bcc/BPF高级eBPF性能分析工具,深入分析内核和应用性能

Windows系统工具

工具名称用途
任务管理器查看系统CPU、内存、磁盘、网络使用情况,进程管理
资源监视器更详细的系统资源监控,查看进程的IO、网络等详细数据
Process Explorer增强版任务管理器,查看进程详细信息、句柄、DLL等
Process Monitor监控进程的文件、注册表、网络等操作
WindbgWindows内核和用户态调试工具
Performance Monitor系统性能计数器,监控各种系统性能指标

二、开发与调试工具

通用开发工具

工具名称用途
Git代码版本管理工具
VS Code/IDE(IDEA/CLion/Visual Studio)代码开发IDE
CMake/MakeC/C++项目构建工具
Maven/GradleJava项目构建工具
npm/yarn/pnpm前端Node.js项目包管理工具
Docker容器化工具,统一开发和部署环境
Postman/ApiPostAPI接口测试工具
curl/wget命令行HTTP请求工具
jq命令行JSON处理工具

调试工具

工具名称用途
gdb/lldbC/C++程序调试工具
pdbPython调试工具
jstack/jmap/jstat/ArthasJava诊断调试工具
go pprofGo语言内置的性能分析工具
Chrome DevTools前端调试和性能分析工具
ValgrindC/C++内存问题检测工具,检测内存泄漏、野指针等
AddressSanitizer(ASAN)编译器内置的内存问题检测工具,比Valgrind性能更好
ThreadSanitizer(TSAN)并发问题检测工具,检测竞态条件、死锁等

三、网络工具

工具名称用途
ping/mtr网络连通性和延迟测试
dig/nslookup/hostDNS查询工具,排查DNS解析问题
telnet/nc(netcat)端口连通性测试,发送TCP/UDP数据
iperf网络带宽测试工具
Nmap端口扫描和网络探测工具
Charles/FiddlerHTTP/HTTPS代理调试工具,拦截查看修改请求
curl命令行HTTP客户端,测试接口
ab/wrkHTTP服务压测工具

四、数据库工具

工具名称用途
MySQL Shell/psql数据库命令行客户端
Navicat/DataGrip/DBeaver数据库图形化管理工具,支持多种数据库
mysqldump/pg_dump数据库备份工具
explainSQL执行计划分析,优化慢查询
pt-query-digestMySQL慢查询日志分析工具
Redis Desktop Manager/Another Redis Desktop ManagerRedis图形化管理工具
Elasticsearch Head/KibanaElasticsearch可视化管理工具

五、性能测试工具

工具名称用途
wrk高性能HTTP压测工具
JMeter功能强大的压测工具,支持HTTP、数据库等多种场景
k6基于JavaScript的现代化压测工具
LocustPython编写的分布式压测工具,可扩展
sysbench系统性能基准测试工具,支持CPU、内存、IO、数据库等测试
FIO磁盘IO性能测试工具

六、分布式与微服务工具

工具名称用途
Nginx/OpenRestyWeb服务器、反向代理、负载均衡
HAProxy/LVS高性能负载均衡工具
Consul/Nacos/Eureka服务发现与配置中心
Sentinel/Hystrix限流熔断、服务治理工具
SkyWalking/Jaeger/Zipkin分布式全链路追踪工具
Prometheus + Grafana监控和可视化系统,收集和展示指标
Alertmanager告警工具,监控指标异常告警
Kafka/RocketMQ/RabbitMQ消息队列
Redis/Memcached分布式缓存
Kubernetes/K8s容器编排工具,管理容器化应用

七、安全工具

工具名称用途
OpenSSL加密解密、证书生成、SSL/TLS测试工具
Nmap端口扫描、安全探测
sqlmapSQL注入检测工具
Wireshark网络抓包分析
ClamAV开源杀毒软件
Hashcat密码破解工具(安全测试用途)

选择工具的原则:够用就好,不要追求工具的大而全,掌握几个常用工具的深入用法比浅尝辄止很多工具更有用。同时要注意,工具只是辅助,核心是理解背后的原理,才能真正解决问题。