我在 CentOS 7 中使用 rabbitmq-server-3.6.6 和 Erlang R16B03-1。安装 rabbitmq 之后,我正在尝试使用 pika 构建一个 rpc 服务器。但是 pika.BlockingConnection() 连接到 127.0.0.1 的部分太慢了,超过 8 秒,通常应该在 1~5ms 左右。
这是我的 rabbitmq-env.conf 设置和 pika 连接代码的列表:
/etc/rabbitmq/rabbitmq-env.conf:
NODENAME=rabbit@localhost
ulimit -S -n 4096
def loop_rpc_1(): import pika, time, uuid host = '127.0.0.1' port = 5672 user = 'rpc_user' passwd = '123456' vhost = '/dev' credentials = pika.PlainCredentials(user, passwd) list = range(1, 100) for i in list: start_time = time.time() conn = pika.BlockingConnection(pika.ConnectionParameters(host, port, vhost, credentials, )) conn.close() print(i, time.time() - start_time)
输出:
loop_rpc_1()
1 7.42911958694458
2 5.011636972427368
3 0.008404970169067383
4 0.00924539566040039
5 8.006478071212769
6 2.010906934738159
7 0.008637666702270508
8 0.008483409881591797
9 5.0115368366241455
10 0.00960850715637207
11 0.008922576904296875
12 5.015120506286621
13 8.005479335784912
14 2.011262893676758
15 8.005752325057983
16 2.0079636573791504
17 8.006184816360474
18 2.0097343921661377
19 0.008991718292236328
20 8.00625205039978
/var/log/rabbitmq/rabbitmq@localhost.log 就像:
=INFO REPORT==== 17-Aug-2017::20:17:12 === 接受 AMQP 连接 <0.5344.4> (127.0.0.1:44705 -> 127.0.0.1:5672)
=INFO REPORT==== 2017 年 8 月 17 日::20:17:14 === 关闭 AMQP 连接 <0.5344.4> (127.0.0.1:44705 -> 127.0.0.1:5672)
=INFO REPORT==== 17-Aug-2017::20:17:14 === 接受 AMQP 连接 <0.5371.4> (127.0.0.1:44706 -> 127.0.0.1:5672)
=INFO REPORT==== 17-Aug-2017::20:17:19 === 关闭 AMQP 连接 <0.5371.4> (127.0.0.1:44706 -> 127.0.0.1:5672)
=INFO REPORT==== 17-Aug-2017::20:17:19 === 接受 AMQP 连接 <0.5427.4> (127.0.0.1:44707 -> 127.0.0.1:5672)
=INFO REPORT==== 2017 年 8 月 17 日::20:17:19 === 关闭 AMQP 连接 <0.5427.4> (127.0.0.1:44707 -> 127.0.0.1:5672)
=INFO REPORT==== 17-Aug-2017::20:17:19 === 接受 AMQP 连接 <0.5434.4> (127.0.0.1:44708 -> 127.0.0.1:5672)
=INFO REPORT==== 2017 年 8 月 17 日::20:17:19 === 关闭 AMQP 连接 <0.5434.4> (127.0.0.1:44708 -> 127.0.0.1:5672)
=INFO REPORT==== 17-Aug-2017::20:17:19 === 接受 AMQP 连接 <0.5441.4> (127.0.0.1:44709 -> 127.0.0.1:5672)
=INFO REPORT==== 17-Aug-2017::20:17:27 === 关闭 AMQP 连接 <0.5441.4> (127.0.0.1:44709 -> 127.0.0.1:5672)
=INFO REPORT==== 17-Aug-2017::20:17:27 === 接受 AMQP 连接 <0.5515.4> (127.0.0.1:44710 -> 127.0.0.1:5672)
=INFO REPORT==== 17-Aug-2017::20:17:29 === 关闭 AMQP 连接 <0.5515.4> (127.0.0.1:44710 -> 127.0.0.1:5672)`
- 此外,像
time rabbitmqctl list_users
,这样service rabbitmq-server start/stop/status
的命令也很慢。
调试此类问题的标准程序是什么?
非常感谢!