我正在开发一个 Web 应用程序,其中大量使用遵循最佳实践的并行任务库。这意味着我需要多个处理器。那么在配置方面您会推荐哪一个?
答案1
没有什么细节可以说明。这是少量的 CPU 密集型任务,大量 CPU 轻量级任务,还是会被阻塞的任务(例如 IO)?
如果使用大量 IO,那么磁盘系统将更加重要(看看 RAID、SSD 甚至 SAN)。如果涉及大量数据,那么内存带宽和数量可能更加重要(并且小的代码更改可能会产生很大的影响,例如考虑缓存行的大小),因此需要关注主板和 CPU 设计的这一方面。
总的来说,你有两个选择:
- 把你的预算花在看起来最好的事情上(考虑到上述因素)。
- 借用/租用一些不同配置的服务器并进行基准测试,然后做出选择。
这不是一个简单的答案,小的变化可能会产生不成比例的影响。对于一组可以利用大多数现代 CPU 缓存的任务(从而避免暂停等待主 RAM),单个快速核心可以比并行的多个核心更快地按顺序完成任务,因为它可以利用所有 CPU 芯片的缓存而不会发生争用。