ホームページ  >  記事  >  バックエンド開発  >  PHP で Varnish キャッシュ サーバーのステータスを監視するにはどうすればよいですか?

PHP で Varnish キャッシュ サーバーのステータスを監視するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-07-25 08:52:10947ブラウズ
  1. $outfile=shell_exec("/usr/bin/varnishstat -x");
  2. $xml=simplexml_load_string($outfile);
  3. echo $xml->getName() 。 "
    ";
  4. foreach($xml->children() as $child)
  5. {
  6. //$tmpName="";
  7. foreach($child->children() as $subChild)
  8. {
  9. if ($subChild->getName() =="name" )
  10. {
  11. $tmpName=$subChild;
  12. }
  13. elseif ($subChild->getName() =="value" )
  14. {
  15. if ($tmpName!="")
  16. {
  17. $arys["$tmpName"]=$subChild;
  18. $tmpName="";
  19. }
  20. }
  21. else
  22. {
  23. continue;
  24. }
  25. }
  26. }
  27. function byteReduce($bytes)
  28. {
  29. if ($bytes>1099511627776)
  30. {
  31. returnround($bytes/1099511627776)."TB";
  32. }
  33. else if ($bytes>1073741824)
  34. {
  35. returnround($ bytes/1073741824)."GB";
  36. }
  37. else if ($bytes>1048576)
  38. {
  39. return Round($bytes/1048576)."MB";
  40. }
  41. else if ($bytes>1024)
  42. {
  43. return Round($bytes/1024)."KB";
  44. }
  45. else
  46. {
  47. return $bytes."B";
  48. }
  49. }
  50. echo "client_conn: ".$arys["client_conn"] 。 "
    ";
  51. echo "client_req: ".$arys["client_req"] 。 "
    ";
  52. echo "cache_hit: ".$arys["cache_hit"] 。 "
    ";
  53. echo "cache_miss: ".$arys["cache_miss"] 。 "
    ";
  54. echo "キャッシュ ヒット率: ".round(($arys["cache_hit"]/$arys["client_req"])*100)." %
    " ;
  55. echo "LRU 解除されたオブジェクト: ".$arys[n_lru_nuked]."
    ";
  56. echo " ".byteReduce($arys["s_bodybytes"]+$arys["s_hdrbytes"])." Acc Content (".byteReduce($arys["s_hdrbytes"])." header ".byteReduce($arys["s_bodybytes"])." Body)";
  57. ?>
复制代码

效果,以下の図: PHP で Varnish キャッシュ サーバーのステータスを監視するにはどうすればよいですか?

注、リアルタイムの状況を確認するために、コントロール追加中に HTML を更新し、ワニス保存サーバーの状態を随時確認することができます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:爆発関数命令次の記事:爆発関数命令