【问题标题】:Aerospike connection errorsAerospike 连接错误
【发布时间】:2023-03-08 15:26:01
【问题描述】:

我们在 Ubuntu 14.04 上运行 Aerospike 服务器 3.5.15-1,并定期从 PHP 客户端获取服务器连接错误([-1]无法连接到服务器)。 PHP 客户端版本 3.4.1。我们从一个单独的服务器节点运行 PHP 5.3 客户端。从 php-fpm 创建的连接。

服务器日志中没有任何相应的错误,并且服务器不必重新启动。所以,问题似乎出在客户端。

此应用程序最多可同时创建 400 个与 Aerospike 的连接。我们使用 r3.xlarge EC2 实例,服务器有大量可用资源。

我们遵循 Aerospike 调整文档并尝试在服务器上更新 proto-fd 和推荐的操作系统参数,但没有帮助

   proto-fd-max 100000
   proto-fd-idle-ms 15000

这就是我们初始化和使用 Aerospike 的方式:

$opts = array(Aerospike::OPT_CONNECT_TIMEOUT => 1250,Aerospike::OPT_WRITE_TIMEOUT => 5000);
$this->db = new Aerospike($config, false, $opts);

//set key
$aero_key = $this->db->initKey($this->keyspace, $this->table, $key);
$aero_value = array("value" => $value);
$status = $this->db->put($aero_key, $aero_value, $ttl, $options);

//get key
$aero_key = $this->db->initKey($this->keyspace, $this->table, $key);
$status = $this->db->get($aero_key, $result);

断开连接前的 Aerospike 服务器统计数据:

Aug 27 2015 19:32:50 GMT: INFO (info): (thr_info.c::4828) trans_in_progress: wr 0 prox 0 wait 0 ::: q 0 ::: bq 0 ::: iq 0 ::: dq 0 : fds - proto (237, 16073516, 16073279) : hb (0, 0, 0) : fab (16, 16, 0) Aug 27 2015 19:33:00 GMT: INFO (info): (thr_info.c::4828) trans_in_progress: wr 0 prox 0 wait 0 ::: q 0 ::: bq 0 ::: iq 0 ::: dq 0 : fds - proto (334, 16076516, 16076182) : hb (0, 0, 0) : fab (16, 16, 0) Aug 27 2015 19:33:10 GMT: INFO (info): (thr_info.c::4828) trans_in_progress: wr 0 prox 0 wait 0 ::: q 0 ::: bq 0 ::: iq 1 ::: dq 0 : fds - proto (288, 16079478, 16079190) : hb (0, 0, 0) : fab (16, 16, 0) Aug 27 2015 19:33:20 GMT: INFO (info): (thr_info.c::4828) trans_in_progress: wr 0 prox 0 wait 0 ::: q 0 ::: bq 0 ::: iq 0 ::: dq 0 : fds - proto (131, 16082477, 16082346) : hb (0, 0, 0) : fab (16, 16, 0) Aug 27 2015 19:33:30 GMT: INFO (info): (thr_info.c::4828) trans_in_progress: wr 0 prox 0 wait 0 ::: q 0 ::: bq 0 ::: iq 0 ::: dq 0 : fds - proto (348, 16084665, 16084317) : hb (0, 0, 0)

【问题讨论】:

  • 您介意更新问题吗?我不知道问题是什么 - 服务器崩溃或无法从客户端连接?似乎您遇到了崩溃,但除了一行之外,您没有说明它。您的客户端是否在不同的节点上运行?他们的 PHP 客户端有哪些版本?
  • @RonenBotzer 服务器日志中没有任何相应的错误,也不必重新启动服务器。因此,问题似乎出在客户端。从 php-fpm 创建的连接。我们有一个服务器实例。我们从一个单独的服务器节点运行 PHP 5.3 客户端。从 php-fpm 创建的连接。
  • 添加一个指向 Aerospike 论坛的链接,其中包含此问题的副本:discuss.aerospike.com/t/connection-errors-from-php-client/1719

标签: aerospike


【解决方案1】:

从日志段中,我们可以看到节点上随时有大约 300 个客户端连接打开,远低于 proto-fd-max 中的 100000 个限制。

如果您将多播用于心跳(我认为您是),那么 0 的心跳就可以了。

我希望您已经看过这个,但是您是否能够在发生故障时检查客户端和服务器之间的网络连接?我知道在正常情况下,客户端和服务器可以愉快地共存,但是在发生故障时,您是否看到任何基本的连接问题?

您是否碰巧在客户端计算机上安装了其他应用程序?他们是否有任何类似的故障,可能是在 Aerospike 客户端出现问题时?

您是否在多台服务器上安装了客户端?您可能只看到其中一台服务器上的连接错误吗?

我知道你已经在看这个,所以如果我涉及到你已经查看过的主题,我深表歉意。

感谢您的宝贵时间,

-DM

【讨论】:

猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 2016-06-11
  • 1970-01-01
  • 2022-11-24
  • 2019-04-15
相关资源
最近更新 更多