我正在研究的程序需要在实时从网络到达时处理某些对象。吞吐量很好,但由于意外延迟,我偶尔会在输入队列中出现下降。
我的分析显示,很可能延迟的来源不在我的计划之内;就像在我的进程的CPU核心上调度另一个进程(我将进程的亲和性设置为某个核心)或到达的硬件中断(可能是网络中断)。
我的问题是我不确定延迟的来源。是否有工具或方法可以找到在某段时间内如何正确使用CPU内核? (例如,告诉我核心0被流程19494使用99.1%的时间,流程20001占0.8%的时间,流程8110占0.1%的时间。)
我在带有Xeon CPU的HP服务器上使用Ubuntu 14.04 Server Edition。
答案 0 :(得分:-1)
可以是CPU,磁盘速度,网络速度或内存。
使用htop
很容易发现内存使用情况和CPU。 (使用排序选项,F6)
高清速度可能是一个问题。例如,如果您使用低能耗磁盘(它们在不使用时会变慢)。您是否在同一系统上运行数据库?
使用iotop
,它可能会给出一个线索。