技术开发 频道

高效Linux用户需要了解的命令行技能

  5.系统调试

  iostat,netstat,top,atop,htop,dstat

  可以帮助了解硬盘,CPU,内存,网络的状态。

  这能帮你对系统正在发生的情况有个第一认识。

  free,vmstat

  如果想了解内存的状态,这两个命令很重要。

  其中cached是Linux内核中文件缓存的大小。

  kill -3

  在调试Java程序时,使用此命令,可以在stderr/logs中找到完整的stack trace,堆信息(包含垃圾收集的细节)。

  mtr,traceroute

  能够帮忙找到网络问题,前者比traceroute更好用。

  iftop,nethogs

  这两个命令可以办刚找出哪个端口或者进程占用了多少网络带宽。

  ab,siege

  这个Apache自带的工具能帮助快速检查web服务器的性能。

  wireshark,tshark

  是进行更高级的网络调试的得力工具。

  strace,ltrace

  这两个命令能帮你在一无所知的情况下,对程序运行失败,假死,崩溃等问题带来一些线索。

  另外,他们还能帮忙发现一些性能问题。比如 -c选项可以做profiling;-p选项可以挂到某个指定的进程上。

  ldd

  检查共享库的情况

  gdb

  了解如何利用GDB连接到一个正在运行的进程,并且得到其stack trace。

  /proc/

  在做现场调试的时候很有用。比如 /proc/cpuinfo, /proc/XXX/cwd, /proc/XXX/exe, /proc/XXX/fd/, /proc/XXX/smaps

  sar

  在需要判断为何过去某个时间系统会出错时,这个命令能显示CPU,内存和网络的历史情况。

  stap, perf

  当需要更深的分析系统,以及性能情况时,这两个工具很有用。

  dmesg

  当系统出现一些很反常的现象时,比如可能是硬件或驱动问题时,这个很管用。

  6.参考

  http://unixhelp.ed.ac.uk/scrpt/scrpt2.2.2.html

  http://www.quora.com/Linux/What-are-some-time-saving-tips-that-every-Linux-user-should-know

0
相关文章