Linux

Linux下高cpu解决方案(转载)

昨天搞定了一个十万火急的issue,客户抱怨产品升级后系统会变慢和CPU使用率相当高,客户脾气很大,声称不尽快解决这个问题就退货,弄得我们 R&D压力很大,解决这个issue的任务分给了我,客户是南非的一个公司,由于时差问题,我只好在家远程解决问题,晚上8点半用 gotomeeting远程到客户电脑查看我们的系统,折腾了四个多小时,终于在凌晨时reproduce了这个high CPU,赶紧抓Log,用wireshark抓包,用gcore,gstack,strace和top保存了系统的相关输出。在第2天分析了这些文件后, 找到了产品的bug,代码的作者分配了10K的缓冲区,并想当然认为10K足以够用,当然99%的情况下是够用的,但是在这1%的情况下出现了问题,缓冲 区不幸被写满了,然后程序进入了死循环,导致high CPU。找到了问题了,fix就很容易了,客户的脾气也缓和了,fix很快就可以deliver给客户。反思解决问题的过程,觉得这个分析过程具有可复用 性,值得总结一下。…

        

用 netstat 命令,分析网络连接情况

  1. // 用jps命令,显示所有JAVA进程。
  2. # jps
  3. 18374 DesktopServerLauncher
  4. 14690 Bootstrap
  5. 23211 Jps
  6. //除了jps那行,其余全是JAVA进程。
  7. // 用netstat命令,显示进程ID和程序名(p);然后用grep命令找出进程18374;然后用head命令显示前3行。
  8. # netstat -antp | grep 18374 | head -3
  9. tcp        0      0 :::54104                    :::*                        LISTEN      18374/java
  10. tcp        0
    

Linux环境下的性能分析 之 IO篇

这周继续上上周的话题,关于linux下的一些性能分析。之前我们聊了CPU、内存的性能分析方法,这周我们聊聊关于磁盘IO的性能分析。

之前之所以去百度学道,就是因为老王在自己在学校瞎折腾的时候,发现自己的服务器如果压力稍微大一些,就扛不住,而且能很明显的听到磁盘哐哧哐哧飞速旋转的声音。所以,决心去bd看看,大公司是怎么样解决磁盘性能问题的。后来去贴吧学艺,正好接手了贴子存储系统的重构工作,后来和另外一个同事合作,完成了贴吧百亿贴子存储系统的研发,也算完成了当年的夙愿。当时做这个系统开发的时候,对于存储系统的研究还是比较多,今天就抽一些关于性能分析的方法给大家聊聊。…

    

Linux环境下的性能分析 之 内存篇

最近雾霾很严重,即使周末想必大家也很难得出门。与其在外面吸霾,不如在家看老王扯扯技术的淡。好了,言归正传,今天延续上周的话题,我们聊聊在linux下如何分析内存的性能。

 

上周有朋友给老王建议,说能不能用例子的方式来讲这一部分的内容?老王觉得是一个很好的建议。所以,老王就准备讲一个前一段时间发生的例子。也不知道效果好不好,姑且一试,讲的不好不要打我哈(即使要打也请不要打脸,不然周一没法上班~)…