1

我在 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 连接代码的列表:

  1. /etc/rabbitmq/rabbitmq-env.conf: NODENAME=rabbit@localhost ulimit -S -n 4096

  2. 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)`

  1. 此外,像time rabbitmqctl list_users,这样service rabbitmq-server start/stop/status的命令也很慢。

调试此类问题的标准程序是什么?
非常感谢!

4

0 回答 0