![这个“grep”或“zgrep”命令的性能是否会因更多内存或更快的 CPU 而受益?](https://linux22.com/image/1555784/%E8%BF%99%E4%B8%AA%E2%80%9Cgrep%E2%80%9D%E6%88%96%E2%80%9Czgrep%E2%80%9D%E5%91%BD%E4%BB%A4%E7%9A%84%E6%80%A7%E8%83%BD%E6%98%AF%E5%90%A6%E4%BC%9A%E5%9B%A0%E6%9B%B4%E5%A4%9A%E5%86%85%E5%AD%98%E6%88%96%E6%9B%B4%E5%BF%AB%E7%9A%84%20CPU%20%E8%80%8C%E5%8F%97%E7%9B%8A%EF%BC%9F.png)
我有以下命令:
time grep -F -f 'in2.txt' test.fastq
time zgrep -F -f 'in2.txt' test.fastq.gz
大约有 30 个搜索词,搜索文件大小约为 5 GB。但是我注意到,在一台计算机上,完成搜索需要 3-5 倍以上的时间,这是在 Amazon 启动时。因此,我想知道是什么影响了速度?我应该启动具有更多内存或更快 CPU 速度的 ECS 吗?
答案1
CPU 和 I/O。如果您要搜索一组较小的(30 个相当小)术语,则最有可能受到 I/O 限制,并且可能受到 CPU 限制。您不会受到内存限制。
[恕我直言]
当然,正确的答案是测试它。您可以通过几种方式执行此操作,包括打开两个终端并在运行相关命令时运行“dstat”。如果需要几秒钟才能完成,您应该知道哪些资源已达到最大值(达到 100% 或某个稳定状态值),哪些资源没有达到最大值。