数据的收发交给网络库,业务逻辑才是网络编程的重点。

侵入式 : 做成一个库,使用者连接这个库。能够看到程序的内部状态,但是需要使用同一种语言,需要重新编译。

非侵入时:无需重新编译,但是无法看到程序的内部状态,只能看到cpu使用率,内存使用量等信息。

如何画图

  • 独立的画图服务器
  • JavaScript: jqPlot flot
  • 使用libgd

CPU使用率:一段时间内cpu的占空比。 比如让cpu是20%的利用率:

PNP : procmon

将1秒钟分成100分,想要得到20%的cpu利用率只要让cpu载20份中busy,80份中空闲即可,而且需要热昂20份的busy均匀的分布到80的空闲时间中(使用到了bresenham算法)

可以使用ab来测试http server的性能,这里可以用来测试procmon。

使用长连接 -k
ab -k -n 10000 http://127.0.0.1:2345/

使用并发连接 -c
ab -k -n 10000 -c 2 http://127.0.0.1:2345/

请求分类:

  • IO 密集型 : 127.0.0.1/
  • CPU密集型: 127.0.0.1/cpu.png, 对于此类请求,可以想到使用线程池,此请求放入一个队列in,线程池从队列in中取出请求然后计算结果,最后将结果放到队列out中。

扩展
nohub扩展成web显示

PNP : procmon

真正的网络编程无需关心数据的收发(交给网络库去完成),只关心业务逻辑。

PNP : procmon

一个公司应该有已经封装好的库:入图中的NetLib,http,rpc。剩下要做的事情就是如何正确使用这些库解决业务逻辑。

相关文章:

  • 2021-12-09
  • 2021-04-21
  • 2021-11-26
  • 2021-06-21
  • 2021-07-12
  • 2021-08-12
  • 2022-12-23
  • 2021-07-18
猜你喜欢
  • 2021-11-17
  • 2022-12-23
  • 2021-04-06
  • 2021-10-11
  • 2021-08-30
  • 2021-05-25
  • 2021-05-31
相关资源
相似解决方案