python rpc 性能比较_零RPC性能。我的基准有什么问题?

我编写了一个简单的脚本,试图弄清楚ZeroRPC在消息吞吐量方面的表现,服务器是一个简单的服务,与问候语相呼应。客户端代码如下,请注意我正在尝试启动并行任务:import zerorpc

import datetime

import time

import gevent

import threading

N_MSGS = 1000

N_TASKS = 10

N_TASK_STEP = 1

count = dict()

client = zerorpc.Client()

client.connect('tcp://192.168.144.142:80081')

def task(number):

results = []

for i in range(N_MSGS):

results.append(client.hello('Mathias', async=True))

gevent.sleep(0)

count[number] = 0

for r in results:

if r.get() == 'Hello Mathias':

count[number] += 1

format_header = '{:<6s} {:<8s} {:<20s} {:<20s} {:<20s}'

format_line = '{:>6d} {:>8d} {:>20s} {:>20d} {:>9.2f}'

print(format_header.format("#RUN", "#TASKS", "TOTAL TIME", "#MSGS", "MSG/SEC"))

run = 1

for i in range(1, N_TASKS, N_TASK_STEP):

tasks=list()

for j in range(i):

tasks.append(gevent.spawn(task, j))

start = datetime.datetime.now()

gevent.joinall(tasks)

end = datetime.datetime.now()

total_time = end - start

count_total = 0

for _,v in count.items():

count_total += v

msg_per_sec = count_total / total_time.total_seconds()

print(format_line.format(run, i, str(total_time),

count_total, msg_per_sec))

run += 1

服务器非常简单:

^{pr2}$

注意,我使用的是IPC套接字,我希望每当添加更多任务时,吞吐量都会增加,直到达到一定的上限。但事实上,数字几乎总是一样的。即使我换了一个真正的网络设置,数字也没有太大差别。按照我在上面代码设置中得到的数字:N_RUN N_TASKS TOTAL_TIME N_MSGS MSG/SEC // vvvvvvv???????????

1 1 0:00:01.543374 2000 1295.86 // 1295.8621824651705

2 2 0:00:02.454205 4000 1629.85 // 1629.8556966512579

3 3 0:00:03.583786 6000 1674.20 // 1674.2071094646835

4 4 0:00:04.903248 8000 1631.57 // 1631.5715623602969

5 5 0:00:06.133924 10000 1630.27 // 1630.2777797703395

6 6 0:00:07.299903 12000 1643.85 // 1643.8574594758315

7 7 0:00:10.096884 14000 1386.56 // 1386.5663901853286

8 8 0:00:10.437927 16000 1532.87 // 1532.8714216912995

9 9 0:00:11.384918 18000 1581.03 // 1581.0390553537582

10 10 0:00:12.628328 20000 1583.74 // 1583.740935458756

11 11 0:00:13.691057 22000 1606.88 // 1606.888350548829

12 12 0:00:15.430392 24000 1555.37 // 1555.372021657

13 13 0:00:16.775109 26000 1549.91 // 1549.9154133663155

14 14 0:00:18.021384 28000 1553.70 // 1553.7097483744865

我还用IPC进行了一些测量,而且我还期望与TCP相比,性能上有更大的差异。

我画了一张图表,见下图:

800e35cf6889195f9cf6f4d816762923.png

我的印象是,有些东西限制了性能的进一步提高。

也许我在代码中遗漏了一些东西,我正在考虑在一个重要的项目中使用ZeroRPC,并想对它的性能有一个初步的了解。我在基准测试中是否做错了什么?在

这是预期的表现水平吗?在

客户机中的连接数会有任何限制吗?在

如果是,我可以增加号码吗?在

更新&lt;&lt;&lt;&lt

只是想说清楚,因为有些信息不见了。对于上面的脚本,我确实运行了并行任务,当我启动两个客户机进程时,吞吐量下降了一半,比如说一个单一的客户机进程,如果我启动一秒钟,每一个都会有1000个。我不是性能方面的专家,我决定自己测试,因为我认为框架对于我正在工作的项目来说是一个很好的潜力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值