程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php include類文件超時問題處理

php include類文件超時問題處理

編輯:關於PHP編程

      最近發現,php運行自動加載類函數時總是超時,跟蹤php慢查詢日志,發現程序卡在了include某個類文件時竟然超時。

      初步定位是io響應超時,硬盤讀取有問題。

      通過幾個命令來定位:

      iostat -d -x -k 1 10 // 運行10次查看iostat中wait參數很大,一般不超過5ms,await svctm這2個參數越接近,io性能越好。

      參考別的博客,

      await: 每一個IO請求的處理的平均時間(單位是微秒毫秒)。這裡可以理解為IO的響應時間,一般地系統IO響應時間應該低於5ms,如果大於10ms就比較大了。

      這個時間包括了隊列時間和服務時間,也就是說,一般情況下,await大於svctm,它們的差值越小,則說明隊列時間越短,反之差值越大,隊列時間越長,說明系統出了問題。svctm 表示平均每次設備I/O操作的服務時間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高於svctm的值,則表示I/O隊列等待太長, 系統上運行的應用程序將變慢。

      sudo iotop -o , // 查看在劃硬盤的程序,查看進程io占用比例

      sudo perf top // 查看進程io占用比例

      sudo hdparm -t /dev/**** 查看磁盤讀取效率

      顯示: Timing buffered disk reads: 10 MB in 3.14 seconds = 3.18 MB/sec

      查看非中斷睡眠

      while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done

     

      通過上述命令跟蹤後,硬盤讀取效率很低,進一步原因,還不得而知,猜想可能是硬盤有壞道。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved