c – CPU利用率随时间的下降
我有一个多线程的过程.每个线程都受CPU限制(执行计算)并且还使用大量内存.根据资源监视器,该过程从100%cpu利用率开始,但几个小时后,cpu利用率开始缓慢降低. 24小时后,它在90-95%并且下降.
问题是 – 我应该寻找什么,以及我可以使用哪些最知名的方法来调试它? 附加信息: 我有足够的RAM – 大部分都没有在任何特定时刻使用过. 编辑1 编辑2 由于这个问题已经结束,而且没有重新开放,我会写下我的发现,以及如何在问题正文中解决问题(对不起)给未来的用户. 结论了解您的警告!尽可能多地消除它们! 解决方法
对于像这样的非显而易见的问题,您还应该使用实际采样CPU中的底层硬件计数器的分析器.我熟悉的大多数分析器使用内核提供的统计信息而不是底层的HW计数器.在Windows中尤其如此. (原因在于部分遗留,部分原因是Windows希望其内核统计信息独立于硬件.PAPI API尝试解决此问题,但仍然相对较新.)
最好的分析师之一是英特尔的VTune.是的,我为英特尔工作,但内部HPC人员也使用VTune.不幸的是,它的成本.如果您是学生,可以享受折扣.如果没有,则有试用期. 您可以在software.intel.com找到许多优化和性能问题诊断信息.以下是optimization和profiling的指针.即使您没有使用x86架构,这些技术仍然有效. 至于可能是什么问题,缓慢的退化是奇怪的. >您多久使用一次新内存或访问旧内存?以什么速度?如果速率非常慢,您可能仍然遇到放慢使用资源的情况,例如:页面. 如果您使用的是x86架构,请考虑在英特尔论坛中提交问题(例如“英特尔?集群和HPC技术”和“软件调优,性能优化和平台监控”). 让我们知道你最终发现了什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |