1

我们的网络服务器面临性能问题。我们正在使用带有 php 5.4.14(它是一个 uniserver 包)和一个 postgresql 数据库 9.2 的 apache 服务器(2.4.4)。它在 Windows 系统上(可以是 XP、7 或服务器……)。

问题是来自网络服务器的请求响应太慢;我们做了一些分析,发现数据库连接大约是20 毫秒(毫秒)。我们正在使用这样的 PDO:

$this->mConnexion = new \PDO(“postgres: host=127.0.0.1;dbname=”, $pUsername,$pPassword,  array(\PDO::ATTR_PERSISTENT => false));

我们做了一些时间分析,如下所示:

echo "Connecting to db <br>";$time_start = microtime();

  $this->mConnexion = new \PDO(… 

$time_end = microtime();$time = $time_end - $time_start;

echo "Connecting to db done in $time sec<br>";

我们已经将 ATTR_PERSISTENT 设置为 true,并且我们想出了一个更快的连接时间。代码报告连接时间 = 2. E-5 秒(而持续时间为0.020 秒为假)。

20 毫秒是正常值吗(我们必须转向持久连接)?

我们也用mysql做了一个测试,非持久连接的连接时间在2ms左右。

我们在 postgresql 配置文件中设置了这些选项:

listen_addresses = '*'      
port = 5432   
max_connections = 100        
SSL = off   
shared_buffers = 32MB

编辑

我们不使用永久(尚未),因为有一些缺点,如果脚本失败连接将处于错误状态(因此我们将不得不管理这些情况,这是我们必须做的......)。在直接切换到持久连接之前,我想对这个数据库连接时间有更多的看法。

为了回答 Daniel Vérité 的问题,SSL 已关闭(我已经在之前的关于该主题的搜索中选中了此选项)。

@Daniel:我在 Intel core 2 Extreme CPU X9100 @ 3.06Ghz 4Gb RAM 上进行了测试

4

1 回答 1

1

尝试通过将主机留空来使用 unix 域套接字。它有点快。

于 2013-11-15T14:16:11.627 回答