服务器性能负载记录工具

作者 : admin 于 2009-01-14 17:15:38 标签: , , ,
2009
01-14

服务器突然发生了崩溃,老板开始找我了。

找了半天居然没找到问题在哪里,一咬牙,写了个性能和负载的记录工具,再出事我可有记录了-,-||

备注:只能在linux下用。

  1. < ?php
  2. date_default_timezone_set('Asia/Shanghai');
  3. define('SLEEPTIME',10);       //10秒记录一次
  4. $memfile  = "/proc/meminfo";
  5. $loadfile = "/proc/loadavg";
  6. $logfile  = sprintf("/var/www/html/log/%s.log",date('Y-m-d'));
  7. while(1)
  8. {
  9. $log = getload();
  10. $log .= getmem();
  11. $log .= mymem();
  12. $log .= "\n\r".date("Y-m-d H:i:s");
  13. $log .= "\n\r\n\r";
  14. $handle = fopen($logfile,'a');
  15. fwrite($handle,$log);
  16. fclose($handle);
  17. sleep(SLEEPTIME);
  18. }
  19.  
  20. function getload()      //获得负载
  21. {
  22. global $loadfile;
  23. return file_get_contents($loadfile);
  24. }
  25. function getmem()      //获得内存占用
  26. {
  27. global $memfile;
  28. $mem = file($memfile);
  29. return $mem[0];
  30. }
  31. function mymem()       //程序本身内存占用
  32. {
  33. $pid = getmypid();
  34. exec("ps -eo%mem,rss,pid | grep $pid", $output);
  35.         $output = explode(" ", $output[0]);
  36.         return $output[1] * 1024;
  37. }
  38. ?>

发表评论




XHTML:你可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(若看不到验证码,请重新加载页面。)