Python 系统的基准测试系统性能
Posted
技术标签:
【中文标题】Python 系统的基准测试系统性能【英文标题】:Benchmarking System performance of Python System 【发布时间】:2013-06-16 23:09:25 【问题描述】:我正在考虑使用 inotify 来监视大约 200,000 个目录中的新文件。创建时,脚本监视将处理文件,然后将其删除。因为它是一个包含许多进程的更复杂系统的一部分,所以我想对此进行基准测试,并在运行测试时获取 cpu、内存、磁盘等的系统性能统计信息。
我计划将 inotify 脚本作为守护程序运行,并在几个目录中使用第二个脚本生成测试文件(在测试前随机选择)。
我正在寻求对此类性能进行基准测试的最佳方法的建议,尤其是它对运行它的 Linux 服务器的影响。
【问题讨论】:
【参考方案1】:我会尝试删除尽可能多的其他流程,以获得可重复的基准。例如,我将设置一个单独的专用服务器,并将 NFS 挂载到目录。该服务器将只运行 inotify 和 Python 脚本。对于简单的服务器测量,我会使用top
或ps
来监控CPU 和内存。
真正的考验是您的脚本“排空”目录的速度,这完全取决于您的流程。您可以分析脚本并查看它在哪里花费时间。
【讨论】:
我一直在考虑这样的事情,您的回答有助于验证这一点。我认为dstat
会比top
更好。 dstat
可以输出到文件,然后您可以将其转换为图形。我不确定ps
将如何帮助监控系统性能?你能解释更多吗?我用它来检查单个进程。
@EdwardWilliams:ps
如果进程正在等待磁盘 I/O(或交换),则将显示状态“D”,如果您的进程正在扫描目录,则很可能出现这种情况。它还可以显示您的进程正在使用的 % CPU 和 % 内存。如果您的进程不是磁盘绑定的并且 % 数字相对较低(例如,低于 50%),那么您的进程正在跟上负载。如果状态为“R”,那么它正在运行您的代码以尝试跟上。状态应为“S”,因为它在等待另一个文件时“休眠”。我之前没用过dstat
。以上是关于Python 系统的基准测试系统性能的主要内容,如果未能解决你的问题,请参考以下文章