(Intel(R)Xeon(R)CPU L5520 @ 2.27GHz)与专用(Intel(R)Xeon(R)CPU E3-1240 V2 @ 3.40GHz)

正如标题所示,为什么第一台(Linode)服务器为什么会在一个php脚本中以40-50毫秒(平均10ms来完成vs 50-60ms专用)击败这个非常有名的液体Web专用服务器其中使用了十几个mysql函数。

我做了一个循环testing来testing这个。

Linode的VPS有512MB RAM和4GB的专用,但我想这不重要。

另外,我在linode上的vps在testing期间每秒钟加载10-20个请求。

所有这些让我很担心,甚至转移我的网站,这需要快速的MySQL操作/任务。

任何想法或build议?

编辑:做了一个更多的testing,一个简单的插入平均30毫秒! 我完全困惑。

<?php $started_at = millitime(); $user = "x"; $password = "x"; $database = "x"; mysql_connect('localhost', $user, $password) or die("Unable to conn"); mysql_select_db($database) or die("Unable to select database"); $result = mysql_query("INSERT INTO x VALUES ('','1', '1', '1')"); $ended = millitime(); $waited = $ended - $started_at; echo "\n\n - >>> SCRIPT ENDED IN > " . $waited . "\n"; function millitime() { $microtime = microtime(); $comps = explode(' ', $microtime); // Note: Using a string here to prevent loss of precision // in case of "overflow" (PHP converts it to a double) return sprintf('%d%03d', $comps[1], $comps[0] * 1000) . "\n"; } ?> 

Linode的VPS有512MB RAM和4GB的专用,但我想这不重要。

数据库通常是我绑定的,内存有帮助。

任何想法或build议?

除非CPU绑定,否则不要打扰CPU。 找出caching使用(内存)和IOPS。 数据库大部分时间都是靠IO性能来生存和死亡的,CPU甚至很less被打扰。

再做一个testing,一个简单的插入平均30毫秒! 我完全困惑。

这似乎是正确的。 您至less需要两次循环才能执行数据库更新。 说你的磁盘在5400转时旋转。 这给出:(60 * 1000 * 2)/ 5400 = 22ms最小值。

当然,在插入过程中,系统可以做很多其他的事情。 您只需等待I / O即可完成。