本附录汇总了开发、调试、性能分析等各个场景下常用的工具,帮助读者提升开发效率和问题排查能力。
| 工具名称 | 用途 |
| top/htop | 实时查看系统整体的CPU、内存、进程运行情况 |
| vmstat | 查看虚拟内存、CPU、上下文切换等系统整体统计信息 |
| iostat | 查看磁盘IO使用率、IOPS、吞吐量、延迟等磁盘性能指标 |
| pidstat | 查看单个进程的CPU、内存、IO、线程等详细统计 |
| perf | Linux性能计数器,分析CPU热点函数、缓存命中率、调用栈等 |
| free | 查看系统内存使用情况 |
| df/du | 查看磁盘空间使用和目录大小 |
| ss/netstat | 查看网络连接、端口监听、网络统计信息 |
| sar | 系统活动报告,查看历史性能数据 |
| dstat | 全能系统统计工具,同时显示CPU、磁盘、网络、分页等信息 |
| strace | 跟踪进程的系统调用,排查IO、阻塞等问题 |
| lsof | 查看进程打开的文件、网络连接等信息 |
| tcpdump/Wireshark | 网络抓包分析工具,排查网络问题 |
| bcc/BPF | 高级eBPF性能分析工具,深入分析内核和应用性能 |
| 工具名称 | 用途 |
| 任务管理器 | 查看系统CPU、内存、磁盘、网络使用情况,进程管理 |
| 资源监视器 | 更详细的系统资源监控,查看进程的IO、网络等详细数据 |
| Process Explorer | 增强版任务管理器,查看进程详细信息、句柄、DLL等 |
| Process Monitor | 监控进程的文件、注册表、网络等操作 |
| Windbg | Windows内核和用户态调试工具 |
| Performance Monitor | 系统性能计数器,监控各种系统性能指标 |
| 工具名称 | 用途 |
| Git | 代码版本管理工具 |
| VS Code/IDE(IDEA/CLion/Visual Studio) | 代码开发IDE |
| CMake/Make | C/C++项目构建工具 |
| Maven/Gradle | Java项目构建工具 |
| npm/yarn/pnpm | 前端Node.js项目包管理工具 |
| Docker | 容器化工具,统一开发和部署环境 |
| Postman/ApiPost | API接口测试工具 |
| curl/wget | 命令行HTTP请求工具 |
| jq | 命令行JSON处理工具 |
| 工具名称 | 用途 |
| gdb/lldb | C/C++程序调试工具 |
| pdb | Python调试工具 |
| jstack/jmap/jstat/Arthas | Java诊断调试工具 |
| go pprof | Go语言内置的性能分析工具 |
| Chrome DevTools | 前端调试和性能分析工具 |
| Valgrind | C/C++内存问题检测工具,检测内存泄漏、野指针等 |
| AddressSanitizer(ASAN) | 编译器内置的内存问题检测工具,比Valgrind性能更好 |
| ThreadSanitizer(TSAN) | 并发问题检测工具,检测竞态条件、死锁等 |
| 工具名称 | 用途 |
| ping/mtr | 网络连通性和延迟测试 |
| dig/nslookup/host | DNS查询工具,排查DNS解析问题 |
| telnet/nc(netcat) | 端口连通性测试,发送TCP/UDP数据 |
| iperf | 网络带宽测试工具 |
| Nmap | 端口扫描和网络探测工具 |
| Charles/Fiddler | HTTP/HTTPS代理调试工具,拦截查看修改请求 |
| curl | 命令行HTTP客户端,测试接口 |
| ab/wrk | HTTP服务压测工具 |
| 工具名称 | 用途 |
| MySQL Shell/psql | 数据库命令行客户端 |
| Navicat/DataGrip/DBeaver | 数据库图形化管理工具,支持多种数据库 |
| mysqldump/pg_dump | 数据库备份工具 |
| explain | SQL执行计划分析,优化慢查询 |
| pt-query-digest | MySQL慢查询日志分析工具 |
| Redis Desktop Manager/Another Redis Desktop Manager | Redis图形化管理工具 |
| Elasticsearch Head/Kibana | Elasticsearch可视化管理工具 |
| 工具名称 | 用途 |
| wrk | 高性能HTTP压测工具 |
| JMeter | 功能强大的压测工具,支持HTTP、数据库等多种场景 |
| k6 | 基于JavaScript的现代化压测工具 |
| Locust | Python编写的分布式压测工具,可扩展 |
| sysbench | 系统性能基准测试工具,支持CPU、内存、IO、数据库等测试 |
| FIO | 磁盘IO性能测试工具 |
| 工具名称 | 用途 |
| Nginx/OpenResty | Web服务器、反向代理、负载均衡 |
| HAProxy/LVS | 高性能负载均衡工具 |
| Consul/Nacos/Eureka | 服务发现与配置中心 |
| Sentinel/Hystrix | 限流熔断、服务治理工具 |
| SkyWalking/Jaeger/Zipkin | 分布式全链路追踪工具 |
| Prometheus + Grafana | 监控和可视化系统,收集和展示指标 |
| Alertmanager | 告警工具,监控指标异常告警 |
| Kafka/RocketMQ/RabbitMQ | 消息队列 |
| Redis/Memcached | 分布式缓存 |
| Kubernetes/K8s | 容器编排工具,管理容器化应用 |
| 工具名称 | 用途 |
| OpenSSL | 加密解密、证书生成、SSL/TLS测试工具 |
| Nmap | 端口扫描、安全探测 |
| sqlmap | SQL注入检测工具 |
| Wireshark | 网络抓包分析 |
| ClamAV | 开源杀毒软件 |
| Hashcat | 密码破解工具(安全测试用途) |
选择工具的原则:够用就好,不要追求工具的大而全,掌握几个常用工具的深入用法比浅尝辄止很多工具更有用。同时要注意,工具只是辅助,核心是理解背后的原理,才能真正解决问题。