【发布时间】: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