Linux下定位问题的几个工具

上一篇 / 下一篇  2012-08-15 09:32:26 / 个人分类:Linux

I]*Gfe6u d,{0  当你自己开发维护一套网站之类的时候,总会遇到各种异常的问题,或者有着性能优化的迫切需求,抑或着遭到了一些简单的攻击。

o r!vZ| ^M051Testing软件测试网Sj(HN)q r

  那么这个时候,一些比较好的,成型的工具会给你快速定位问题,带来很好的帮助。51Testing软件测试网gs?Hj

51Testing软件测试网$kKL CB}a3K(J

  一、tail -f 的用法

"D5u\5g5k:r`@051Testing软件测试网c-| v?h,O;z)s

  通常用作日志的定位小命令。在遇到问题的时候,用这个可以跟踪问题发生的逻辑前后,方便做出逻辑分析和推测。51Testing软件测试网e @&lc0@b9]"g

^1b1A:B}rT0  1、apache log:在ubuntu下面,通常在/var/log/apache2/下面,当出现服务器无法连接等异常的时候,可以直接在该目录下,tail -f *, 并再次请求,看看是否有错误发生。51Testing软件测试网t[&U2E;Fwq

MP|#p,\&k:togKE!c!n0  2、mysql log:在ubuntu下面,通常在/var/log/mysql/下面

!AtMc E:dpA1Ip0

i$JrU-I1b7h T"B7wJ0  当应用提示数据库错误的时候,在这里跟踪mysql给出的错误是第一选择。

0w)MX#C{2]0

uq:OHe2o{2TN Z0  另外,如果你想跟踪一个操作引发的sql操作,那么请修改my.cnf里的配置,把普通log的配置打开。51Testing软件测试网9ejTr6KGG^

51Testing软件测试网9x5MKw O8Z

  这样,当一个逻辑操作后,你会看到所有的sql操作表和对应的操作。

ZO \:Usk#Q051Testing软件测试网OYo[MW

  3、web应用自己的log。

va:u3tC-j051Testing软件测试网%aNAp&o^-q/[

  通常你会在自己web应用定义的log目录下面,用tail可以跟踪到你应用中出现逻辑问题的地方。用不断打日志,跟踪变量的方式,你可以像调试应用程序一样,来调试你的web服务。51Testing软件测试网$g~Q,e9c O:L

51Testing软件测试网Bo$`c bH?"K

  二、top命令51Testing软件测试网*C2DR(VOr&g

Nk ^ TX }0  该命令可以有效地看到机器目前资源的利用情况。特别是服务请求到达一定瓶颈的时候,可以清楚的看到最繁忙的进程是哪个。

,_$zTtI0

]9jjL!O:i0  三、strace

9Q;S%}D FJ+K051Testing软件测试网H ]-B0P6[8~M e*hC

  对于一些抛出异常的程序,可能tail的粒度过于粗放,很多细节无法得知。那么这个时候,可以采用这个工具。一般来说,可以得到系统调用级别的日志。优点是,日志精确,缺点是,过于庞大。所以一般在找到一个大概的范围后,再采用strace来实施精确打击。

wQ)p ] WG)W1z_)t051Testing软件测试网7c.WvI?5D.s,`:X

  四、netstat & tcpdump51Testing软件测试网A? N][*Er N

51Testing软件测试网h:e{ C@'Fi

  这两个命令是方便定位出现网络请求的问题。也是适合大致已经定位到这个方向的时候。

*Dk}O N _c1Z;fV0

TAG:

 

评分:0

我来说两句

Open Toolbar