php include类文件超时问题处理

  最近发现,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

 

  通过上述命令跟踪后,硬盘读取效率很低,进一步原因,还不得而知,猜想可能是硬盘有坏道。

时间: 2024-10-26 14:22:00

php include类文件超时问题处理的相关文章

#include类的头文件与直接写class加类名有何区别

在写 头文件的时间 经常会 有一些 class QFile 等这类 看似 是声明的东西..例如下面 #ifndef WINDOW_H#define WINDOW_H QT_BEGIN_NAMESPACEclass QTcpServer;class QTcpSocket;class QProgressBar;class QLabel;class QDialogButtonBox;class QFile;QT_END_NAMESPACE//code endclass QAction;class QC

PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间_php实例

PHP前言: •动态地创建属性和方法 •对象的复制 •对象的比较 •加载指定的文件 •自动加载类文件 •命名空间 示例 1.类的相关知识点 3(动态地创建属性和方法) class/class3.php <?php /** * 类的相关知识点 3(动态地创建属性和方法) */ // 用于演示如何动态地创建属性(这就是 php 中所谓的重载) class Class1 { // __set 魔术方法,当设置的属性不存在或者不可访问(private)时就会调用此函数 public function _

php相对当前文件include其它文件的方法

 这篇文章主要介绍了php相对当前文件include其它文件的方法,实例分析了php中include引入文件的使用技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了php相对当前文件include其它文件的方法.分享给大家供大家参考.具体分析如下: 下面的代码先获得当前文件路径,然后通过相对路径包含其它php文件,在实际使用中非常有用 ? 1 2 3 4 5 <?php $currentDir = dirname(__FILE__); include $currentDir .

封装dll-C# 中如何将一个类文件 封装成.dll文件

问题描述 C# 中如何将一个类文件 封装成.dll文件 我现在在c#程序里面写了几个通用的类,里面包括数据库的操作,网页表单的基本验证以及自己平时总结的一些很好用的方法,我现在想把这些类或者某一个类封装成一个dll文件,最好是所有的类都封装成一个dll,想请问一下各位怎么做,以前没做过将类封装成dll,麻烦大家帮帮小弟,最好有代码,谢谢了! 解决方案 封装成dll不就是将它编译成dll吗? 在bin文件下就有编译的dll 解决方案二: 在VS中新建一个类库工程,把你的类文件导到新建的工程里,编译

[工具类]文件或文件夹xx已存在,则重命名为xx(n)(2)

写在前面 最近一直在弄文件传输组件,其中一个功能就是,在接收端接收文件时,如果文件已经存在了,则对其进行文件名+索引的方式进行自动重命名,之前也写个类似的工具类,总感觉代码太冗余,每回头想想,总觉得心里有疙瘩,下班的时候在地铁上,又想了想,感觉是我把问题想复杂了,遂将今天的思路整理一下,写了一个辅助类,记录在此. 上篇文章 [工具类]文件或文件夹xx已存在,则重命名为xx(n) ReNameHelper代码 1 using System; 2 using System.Collections.G

编译-svn如何过滤如class这类文件

问题描述 svn如何过滤如class这类文件 svn如何过滤掉编译文件的同步,每次同步资源库都出现一大堆class文件, 试过svn的global ignore pattern 设置为*.classes 还试过项目svn设置过滤属性 /class/ 都不管用 , 解决方案 eclipse svn添加过滤文件[SVN]过滤文件和文件夹svn中如何忽略对比class文件 解决方案二: 试过svn的global ignore pattern 设置为*.classes?是不是你上传过项目后再设置的,貌似

当你的Studio.NET出现Automation Server Cannot Create Object时,禁止添加页面及类文件时的解决方案~~

object|server|解决|页面     昨天晚上,偶的脑袋突然闪了一下,好久没有解决的问题突然间来了思路,于是乎,偶兴致勃勃的打开了Visual Studio.NET,但是当偶准备添加一个新的ASPX页面时,灾难降临了~~~右键工程 -- 添加新项 -- Web窗体 -- 确定 -- "哐~!!"一个"Automation Server Cannot Create Object"alert 了出来.怎么回事?不知道.从来没有遇到过,怪哉~~~上Dev问,扫兴

Studio.NET出现Automation Server Cannot Create Object禁止添加页面及类文件解决方案

object|server|解决|页面 昨天晚上,偶的脑袋突然闪了一下,好久没有解决的问题突然间来了思路,于是乎,偶兴致勃勃的打开了Visual Studio.NET,但是当偶准备添加一个新的ASPX页面时,灾难降临了~~~右键工程 -- 添加新项 -- Web窗体 -- 确定 -- "哐~!!"一个"Automation Server Cannot Create Object"alert 了出来.怎么回事?不知道.从来没有遇到过,怪哉~~~上Dev问,扫兴而归~~

Flash AS 3.0菜鸟学飞教程:含有多个类的AS3类文件

AS3.0含有多个类的AS3类文件 标准的AS3类文件是以".as"为结尾的纯文本文件.一个类文件可以包含一个或多个类定义,甚至可以直接写入一次性执行的语句.AS3中,在package花括号外,可以定义一个或多个Class,不可与文件同名.这些花括号外的类,称为当前类文件的包外类.只有当前类文件中的成员可以访问. 包外类的产生,每个.as文件被编译器看成一个编译单元,每个编译单元只能有一个对外可见的Class, 那么package{}之外的Class就对外不可见了. 为什么需要包外类?