服务器cpu 100%使用率和许多php变量

时间:2013-02-05 22:37:41

标签: php ajax performance webserver

首先,我说的是托管我网站的服务器。

所以,几分钟前我在cPanel规范中注意到我的CPU使用率接近100%(我的范围是80-95%)。另一方面,我的内存使用率是5-10%。

我想知道这台服务器是否会在未来崩溃。例如CPU使用率= 100%会发生什么?这台服务器可能会崩溃吗?

我注意到这个cpu用法是因为我正在运行ajax脚本,它每5秒刷新一次div。此div的内容是来自3个随机数组的字符串,它们每5秒创建一次。

此外,我使用了很多变量 - 我的代码上的数组(php代码),我想知道是否必须刷新这些变量。例如

<html>
<?
$variable1 == something
$variable2 == something
$variable3 == something

?>
</html>
<? flush($variable1) ?>

是nessacary在php上做这个(比如在C ++上)吗?或者php有像Java这样的Auto Garbage收集器吗?

编辑:我正在使用的

的Ajax Scritp

的index.html

<html>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
    <script type="text/javascript">
    var auto_refresh = setInterval(
    function ()
    {
    $('#autoRefreshDiv').load('autoRefreshDiv.php').fadeIn("slow");
    }, 5000); // refresh every 5000 milliseconds
    </script>
    <body>
    <div id="autoRefreshDiv"></div>
</body>
    </html>

autoRefreshDiv.php

<?
$array1 = array("something1", "something2");
$array2 = array('something3','something4');
$array3 = array('something5','something6');
shuffle($array1);
shuffle($array2);
shuffle($array3);
echo $array1[0].'.....'.$array3[0].'.....'.$array2[0] ;
?>

2 个答案:

答案 0 :(得分:1)

你的问题有点模糊。一些答案:如果CPU负载达到100%,您的服务器不会崩溃。它可能反应较慢,但崩溃不是一种选择。您可能仍希望对应用程序进行一些优化...

Flush与垃圾收集没什么关系,但有输出缓冲。它将在脚本完成之前向用户发送一些数据。

如果你不谈论数千个变量,那么拥有很多变量并不是一个大问题。只要你没有疯狂的递归或者你应该是安全的。由于你的记忆力只有10%,所以没有危险。当然php.ini限制了脚本将使用的总内存量。

我希望这有点帮助。

答案 1 :(得分:0)

您不必刷新变量,因为如果请求被关闭,PHP会触发一个GC - &gt; evertime ajax-request完成。 使用许多变量也只会对你的RAM造成压力,而不是CPU。

我认为每隔几秒钟生成一个大的随机数组就会产生你的cpu使用问题。