时间:2017-08-17来源:东坡网作者:zhijie
系统调试
对于 Web 调试,curl 和 curl -I 很方便灵活,或者也可以使用它们的同行 wget,或者更现代的 httpie。
要了解磁盘、CPU、网络的状态,使用 iostat,netstat,top(或更好的 htop)和(特别是)dstat。它们对于快速获知系统中发生的状况很好用。
对于更深层次的系统总览,可以使用 glances。它会在一个终端窗口中为你呈现几个系统层次的统计数据,对于快速检查各个子系统很有帮助。
要了解内存状态,可以运行 free 和 vmstat,看懂它们的输出结果吧。特别是,要知道“cached”值是Linux内核为文件缓存所占有的内存,因此,要有效地统计“free”值。
Java 系统调试是一件截然不同的事,但是对于 Oracle 系统以及其它一些 JVM 而言,不过是一个简单的小把戏,你可以运行 kill -3 《pid》,然后一个完整的堆栈追踪和内存堆的摘要(包括常规的垃圾收集细节,这很有用)将被转储到stderr/logs。
使用 mtr 作路由追踪更好,可以识别网络问题。
对于查看磁盘满载的原因,ncdu 会比常规命令如 du -sh * 更节省时间。
要查找占用带宽的套接字和进程,试试 iftop 或 nethogs 吧。
(Apache附带的)ab工具对于临时应急检查网络服务器性能很有帮助。对于更复杂的负载测试,可以试试 siege。
对于更仔细的网络调试,可以用 wireshark,tshark 或 ngrep。
掌握 strace 和 ltrace。如果某个程序失败、挂起或崩溃,而你又不知道原因,或者如果你想要获得性能的大概信息,这些工具会很有帮助。注意,分析选项(-c)和使用 -p 关联运行进程。
掌握 ldd 来查看共享库等。
知道如何使用 gdb 来连接到一个运行着的进程并获取其堆栈追踪信息。
使用 /proc。当调试当前的问题时,它有时候出奇地有帮助。样例:/proc/cpuinfo,/proc/xxx/cwd,/proc/xxx/exe,/proc/xxx/fd/,/proc/xxx/smaps。
当调试过去某个东西为何出错时,sar 会非常有帮助。它显示了 CPU、内存、网络等的历史统计数据。
对于更深层的系统和性能分析,看看 stap (SystemTap),perf) 和 sysdig 吧。
确认是正在使用的 Linux 发行版版本(支持大多数发行版):lsb_release -a。
每当某个东西的行为异常时(可能是硬件或者驱动器问题),使用dmesg。
2023-03-16
Linux如何通过netstat命令查看80端口连接数2023-03-16
Linux启动sshd服务报错could not load host怎么办?2023-03-16
Debian如何设置程序开机自启动身为一个网站的站长,不仅要保证网站的流量提升,还要预防DDOS攻击,那么在Linux系统下要如何检测DDOS攻击呢?又该如何防止DDOS攻击呢?这都是一门学问。...
2023-03-16
在惠普笔记本上安装完Debian系统后,声音出现了问题,多半是声卡驱动故障,这时可重新安装编译声卡驱动解决问题,下面小编就给大家详细介绍下Debian编译安装声卡驱动的方法。...
2023-03-16