计算多线程应用程序中的 CPU、内存、网络使用情况

Posted

技术标签:

【中文标题】计算多线程应用程序中的 CPU、内存、网络使用情况【英文标题】:calculate CPU, Memory, Network usage in a multithreaded application 【发布时间】:2021-05-03 21:41:45 【问题描述】:

我想就如何计算使用多线程每 60 秒执行一次操作的应用程序的 vCPU、内存和网络使用情况提供一些指导。

假设我有一个创建多个线程的程序,每个线程每 60 秒执行一次对资源 (ip) 的 ping。假设 1,000 ips

伪代码:

Class Thread

method start_thread(ip):
  while true
    if ping(ip) is down
      send alert()
    wait(60 sec)

如何估计 vCPU、内存和网络消耗以安全地调整横向扩展配置中的应用程序?

谢谢

【问题讨论】:

我想你需要模拟真实的 API 并记录所有请求,对于 CPU 来说这很困难,因为在调试缓存时,内存延迟与 prod 中的不同 【参考方案1】:

尝试多种配置、收集性能指标并进行评估。除此之外,这是一个疯狂的猜测。线程可能不会消耗太多 CPU(大部分时间都花在等待网络 IO 上),但如果您想要 1,000 个线程,这可能会给系统带来很大压力并需要更多 RAM。

【讨论】:

以上是关于计算多线程应用程序中的 CPU、内存、网络使用情况的主要内容,如果未能解决你的问题,请参考以下文章

Python36 多线程多进程的使用场景

多进程

网络编程

Java多线程中的内存模型

.NET异步和多线程系列

关于进程,线程,多进程和多线程的网络编程