0

我们的设置如下:

  • 主数据库服务器,运行 Percona 5.5.x 的 Amazon EC2 m2.xlarge 实例(17GB 内存,2x3.25ecu CPU)
  • 运行 PHP 5.4 的应用程序服务器、Amazon EC2 m1.large 实例(7.5GB 内存、2x2ecu CPU)
  • php-handlersocketPECL 库在这里http://code.google.com/p/php-handlersocket/

在大多数情况下,它可以工作,但是一旦我加载了具有相对流量的应用程序服务器,结果记录具有中等到大值字段的查询就会开始失败。在我们的例子中,两个主要的罪魁祸首是大约 5Kb 的 XML 字符串,以及存储为 5-500Kb 二进制对象的媒体文件。症状是如果我请求 10 个字段并且 XML 在第 8 个字段中,我将得到 7 个带有数据的结果,而第 8 个将是空的,根本不包括 9 和 10。

有一个与此类问题相关的 php-handlersocket 库的报告问题,但是还有一个建议的修复程序,我已经实施并且我认为它有所帮助,但似乎并不完全。问题详细信息和修复在这里http://code.google.com/p/php-handlersocket/issues/detail?id=28

我的 HandlerSocket 设置与默认设置略有不同,我应该设置这些不同吗?

loose_handlersocket_port = 9998
loose_handlersocket_port_wr = 9999
loose_handlersocket_threads = 4
loose_handlersocket_threads_wr = 1
open_files_limit = 65535

我已将默认read线程数减少到 4,因为他们推荐 CORES * 2,默认值为 16。我认为较慢的响应总比没有好,但这似乎没有什么不同。

php-handlersocket项目看起来已经死了,这本身有点令人惊讶,最后一次源更新是一年多以前,但似乎没有任何其他 PHP 库可用,所以我被困住了。

我想知道是否有人遇到过类似的问题,是否有其他可用的库,或者我是否应该探索跳过库并使用 CURL 之类的东西创建自己的界面。

4

1 回答 1

0

所以最后,和许多问题一样,我对一个注意力有限的开源项目保持警惕,并决定编写我自己的基于 phpsockets的解决方案,该解决方案运行良好。

于 2013-07-02T12:25:14.413 回答