jjzjj

php - 什么可能导致 "exceeded process limit"错误?

coder 2024-04-20 原文

大约一周前我推出了一个网站,我向邮件列表发送了一封电子邮件,告诉每个人该网站已经上线。紧接着网站就崩溃了,一般错误日志中充斥着“超出进程限制”的错误。从那时起,我就尝试真正清理大量代码并尽量减少数据库连接。我仍然会每天在错误日志中看到一次该错误。是什么导致了这个错误?我试着调用虚拟主机,他们说这与我的代码有关,但无法指出代码有什么问题或哪个页面导致了错误。谁能给我更多信息?例如,什么是流程,我应该有多少个流程?

最佳答案

哇。大问题。

显然,您的 apache 童工进程已达到极限。要大致了解您可以创建多少个,请使用 top 获取一个 http 进程的粗略内存占用量。如果您使用的是 wordpress 或其他 cms,则每个可能很容易达到 50-100m(如果您使用的是用于 apache 的 php 模块)。然后,假设该机器仅用于网络服务,取您的总内存,减去操作系统使用的 block ,然后将其除以 100m(在本例中)。那就是您可以拥有的最大工作进程。在你的 httpd.conf 中设置它。执行此操作并重新启动 apache 后,监视 top 并确保您没有开始交换内存。如果这样做,则说明您设置的工作人员数量过高。

如果有任何其他东西像 mysql 服务器一样运行,请在计算可以拥有的工作人员数量之前为它腾出空间。如果这个数字很小,粗略地引用一位伟人的话“你将需要一艘更大的船”。只是在开玩笑。对于超过 100m 的 http 进程,您可能会看到非常高的内存使用率。您可以调整每个 child 的最大请求数以缩短 http 进程的生命周期。这可以帮助清理臃肿的 http workers。

另一个需要关注的领域是请求的时间响应时间……每个请求需要多长时间?要进行快速检查,请使用 firefox 的 firebug 插件并查看“网络”选项卡以了解您的初始请求需要多长时间才能响应(不是图像等)。如果出于某种原因请求需要超过 1 或 2 秒的时间来响应,那么这就是一个大问题,因为您会遇到日志堵塞。造成这种情况的原因可能是 php 代码或 mysql 查询响应时间过长。要解决这个问题,请确保您使用 wordpress 时使用一些好的缓存插件来降低 mysql 的压力。

不过,老实说,除非您只是因为 worker 太少而没有利用内存,否则优化您的 apache 并不是在没有详细介绍您的服务器(内存、cpu 数量等)和您的 httpd 的简短帖子中轻松解决的问题.conf 设置。

注意:如果您没有服务器访问权限,您将很难确定内存使用情况。

关于php - 什么可能导致 "exceeded process limit"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13042223/

有关php - 什么可能导致 "exceeded process limit"错误?的更多相关文章

  1. php - 为什么在php中一行代码中会有多个对象运算符? - 2

    我很想了解运算符语法。我知道它叫做对象运算符,我可以看到它本身是如何使用的(Wheredoweusetheobjectoperator"->"inPHP?)。我正在尝试了解像这段代码中那样将它们串在一起的目的是什么(例如“switch($this->request->param('id')):这是一个使用Kohana的站点的代码片段:publicfunctionaction_list(){$connections=ORM::factory('Connection')->with('property')->with(

  2. php - bindParam 和 execute(array) 有什么区别? - 2

    $stmt=$this->_db->prepare("SELECTuseridFROMusersWHERElogin=?ANDmd5pass=?");#$stmt->bindParam(1,$login,PDO::PARAM_INT);#$stmt->bindParam(2,$pass,PDO::PARAM_STR);$stmt->execute(array($login,$pass));$res=$stmt->fetch(PDO::FETCH_NUM);将变量传输到预先声明的bindParam或execute(array)中哪种方式

  3. php - set_time_limit 不起作用 - 2

    我在php中有一个bigint类,用于计算大数。它运作良好,除了时间限制。我设置了时间限制set_time_limit(900);在我的bigint.php文件中,它在本地主机上工作。但是在我的虚拟主机中,当我尝试计算999^999时,它会产生错误Fatalerror:Maximumexecutiontimeof10secondsexceededin/home/vhosts/mysite.com/http/bigint/bigint.phponline156这是我的代码:publicfunctionMultiply_Digit($digit){//classfunctionofbigi

  4. php - 如何解决 Class xxx is not a valid entity or mapped super class 错误 - 2

    我定义了一个这样的类设置:<?phpuseDoctrine\ORM\MappingasORM;/**@ORM\Entity*/classSetting{/**@ORM\Column(type="integer")*@ORM\GeneratedValue*@ORM\id*/private$id;/**@ORM\Column(length=255,nullable=true)*/private$displayname;/**@ORM\Column(length=255)*/private$name;/**@ORM\Column(type="text")

  5. php - 有什么办法可以打印出 Nagios 服务正常运行时间百分比? - 2

    有没有办法打印出Nagios服务/主机正常运行时间百分比?例如PHP类、命令行工具或... 最佳答案 引用这个Perl脚本:https://github.com/MangeshBiradar/Check_mk/blob/master/nagios_report.pl希望这可以回答您的问题。 关于php-有什么办法可以打印出Nagios服务正常运行时间百分比?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

  6. php - 尝试使 Composer 获取最新的软件包版本时如何解决找不到软件包的错误? - 2

    我在composer中使用symfony2。http://getcomposer.org/doc/04-schema.md我希望对于composer.json中的所有插件,我总是得到最新版本的包我试过了,我得到了错误"php":">=5.3.3","symfony/symfony":"dev-master","doctrine/orm":">=2.2.3,<dev-master","doctrine/doctrine-bundle":"dev-mas

  7. php - CodeIgniter:PHP 错误:Table.php 中的 foreach() 中的参数无效:第 198 行 - 2

    我已经对这个错误进行了非常彻底的搜索,虽然我找到了很多关于“确保您正在传递数组或SQL查询”的一般性答案,但我认为我可能需要每个CodeIgniter库的更具体的帮助。我有一个View,它只是应该创建一个查询(或数组)并生成一个表。(最终,查询将从模型中发生,表生成将成为我的Controller中的一个函数,因此我可以在其他View中重用它,但我只是从基本的屏幕回显开始)View是这样设置的:<divclass="span4wellwell-small"><h4>Requests:</h4><?php$this->tabl

  8. php - 什么是重定向 ://in PATH_TRANSLATED? - 2

    我有一个.htaccess规则,将对/category/category-slug/的请求传递给category.php。但是,当我检查$_SERVER超全局时,我得到了这个条目:Array([PATH_TRANSLATED]=>redirect://)那是什么?我以前从未见过redirect://。这是相关的.htaccess规则:RewriteRule^category/([^/]+)/?(.*)/category.php?cat=$1&page=$2[L,QSA]因此,我的脚本中似乎没有填充$_GET['cat']或$_GET['page']来自重定向并且没有简单地

  9. PHP - 表单错误处理问题 - 2

    如果不满足某些条件,我会尝试创建错误消息。所以用户填写一个表单,如果一个字段为空或没有通过我的验证,它会返回错误消息。这是表格:if(isset($_POST)){if(checkEmail($email)==TRUE&&$name!=NULL&&$surName!=NULL){mysql_query("INSERTINTOUSR_INFO(NAME,MAIL,SURNAME)VALUES('$name','$email','$surName')")ordie(mysql_error());

  10. php - 函数的链接结果?从什么时候开始这可能? - 2

    当我错误地输入我认为会引发错误的内容时,我感到非常惊讶:functionr(){returnarray('foo');}echor()[0];令我惊讶的是,它起作用了,甚至没有发出通知。我记得第一次尝试时无法执行此操作,我注意到在键盘上anerrorwasraised.我正在运行PHP5.4.4并且想知道何时添加了此功能以及我可以在哪里阅读更多相关信息。Google只显示了PHP5MethodChaining的结果,但我想这是其他东西? 最佳答案 从PHP5.4开始,可以“数组取消引用”直接对函数/方法的结果;在PH

随机推荐

  1. php - preg_match 获取包含 123 和 .txt 之间任何字符的文件? - 2

    这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我需要使用preg_match来获取符合特定条件的文件。例如,我想找到一个名为“123-stack-overflow.txt”的文件。123-之后和.txt之前可以有任何字符。如何修改它才能正常工作?preg_match("/^$ID-(.+).txt/",$name,$file);

  2. php - 如何保护 Lithium php RESTful API? - 2

    我已经使用Lithiumphp框架创建了一个RESTful应用程序,现在我的问题是如何保护它?是否有使用锂框架的OAUTH或HTTP摘要认证的现有代码? 最佳答案 感谢您编辑您的问题以实际提出一些具体问题。请看以下内容:https://github.com/search?q=li3_oauthhttp://li3.me/docs/lithium/security/auth/adapter/Http 关于php-如何保护LithiumphpRESTfulAPI?,我们在StackOverf

  3. php - ZipArchive::close() 无效或未初始化的 Zip 对象 - 2

    我正在尝试通过压缩所有内容来备份我的网站,并将压缩包放入一个无法访问的文件夹中,这是使用PHP完成的。我的代码是<?phpZip('../../','./');functionZip($source,$destination){if(extension_loaded('zip')===true){echo'a';if(file_exists($source)===true){$zip=newZipArchive();if($zip->open($destination,ZIPARCHIVE::CREATE)==

  4. php - 使用 php,如何通过 POST 模拟完整的表单提交来发送数据? - 2

    我的问题是:我有一个托管客户目录的在线服务。此服务需要身份验证,但我只有一个用户名/密码。相反,我的客户希望使用自己的用户/密码和访问统计信息分别管理每个用户。所以我所做的就是建立我自己的账户管理,到目前为止一切顺利。我现在需要做的是添加一个登录表单,用户应该用自己的凭据填写该表单;发送后,脚本应继续进行身份验证,如果一切正常,则增加访问计数,通过POST发送远程系统的登录数据并将浏览器重定向到响应页面,与普通表单完全相同。我尝试以这种方式使用curl:if(authenticate($_POST['usr'],$_POST['pwd'])){$url=

  5. PHP 记住我,COOKIE - 2

    我不知道哪里出了问题。当我勾选记住我复选框时该页面没有转到用户区域页面,并且cookie似乎也没有工作当我只是登录而不勾选记住我复选框时它会起作用<?PHPsession_start();$connect=mysql_connect("localhost","root","");mysql_select_db("phplogin",$connect);functionloggedin(){if(isset($_SESSION['email'])||isset($_COOKIE['usernam

  6. php - perl Spreadsheet::WriteExcel 是否比 PHPExcel 更快且占用内存更少? - 2

    我正在使用PHPExcel和一个phporm生成excel5电子表格,用于报告网络应用程序事务。不得不写更多,我想知道perl解决方案是否会占用更少的内存并更快地生成excel文件?例如,在PHPExcel上使用调整大小的列创建186行和列直到BG,使用日期、数字和字符串等数据类型设置在64位、6核、SSD驱动器上占用91mb内存和62秒等等gb内存,linux服务器。(数字不包括orm) 最佳答案 在谷歌搜索了太多基本的perl用法、函数等之后,我自己测试了它,所以这里是:测试笔记此处显示的统计数据与我的问题有很大差异,因为我对每

  7. php禁止用户访问特定页面,除非登录 - 2

    我是php的新手,我想问一下,我们可以做一个像下面的状态这样的功能吗?我有几个管理页面,并有一个管理登录页面。对于正常的例程,应该没问题。但是如果有人知道登录页面之后的管理页面的url,他们所需要做的就是输入该url并访问该页面进行更改,但我想禁用它,所以它会要求他们登录以管理员身份查看该页面并将其重定向到管理员登录页面。 最佳答案 在登录时将userid设置为session并检查是否已设置session如果未设置则重定向到其他页面或不包含特定部分代码或整个代码由您决定喜欢if(!isset($_SESSION['useri

  8. php - Magento - 调整图像大小,保持宽高比,裁剪超出尺寸的部分 - 2

    我想在magento中调整图像大小以保持其纵横比并使其填充具有另一个纵横比的矩形。例子:我的图片是640x480我的矩形是100x50我希望图像填满所有矩形并裁剪超出它的部分。我知道keepFrame(FALSE)-它不会使图像填充矩形,而是使其适合内部并且不会裁剪任何内容。此外,如果您熟悉Wordpress,我想要的是:*add_image_size('home',370,256,true);*谢谢你:) 最佳答案 看看@因为magento已经更改了页面链接结构,请尝试http://web.archive.org/web/2014

  9. php - 使用 php 不显示谷歌地图 - 2

    我有一个php代码,它从数据库(测试)和表名manu获取位置信息,它是使用wamp中的phpmyadmin创建的,并使用标记在map上显示这些位置。感知经纬度值的位置详情。已更新<?$dbname='test';//Nameofthedatabase$dbuser='';//Usernameforthedb$dbpass='';//Passwordforthedb$dbserver='localhost';//Nameofthemysqlserver$dbcnx=mysql_connect("$dbserve

  10. php - Codeigniter - 如何将 JSON 作为参数传递给 View - 2

    这个问题在这里已经有了答案:passingphpvariablefromcontrollertojavascriptfunctionintheheadofaview(3个答案)关闭3年前。我正在构建一个codeigniter/php网络应用程序。我试图在加载View时将JSON对象从Controller传递到View,以一种javascript可以访问的方式。JSON如下所示:{"event":{"id":"1","name":"Somename","description":"So