软件CPU数量的计算方法


就如同这次日全食一样,虽然很感激暴雨赶走了上海连日来的酷暑。但也冲走了500年一遇的超长日全食。很多时候就是有这么多不完美的事件凑成了完美的世界——撤远了。

很多软件,由于种种原因,总有不完全功能的版本,对于服务器软件而言,最常见的不完美就是对CPU数量和支持内存进行限制。在现在这个多核的时代,计算CPU数量有的时候会存在歧义。列举出来分为:SMT(超线程),多核以及SMP多CPU技术。当然根据tom’s hardware的测评,多核CPU的核心越多,性能提升的空间相对越少——大致为1+n^-2。这也似乎意味着其实“第一个”CPU的工作效率是最高的。

  • windows:以物理cpu数量为准,SMT和多核仍然只算做一个CPU。当然,在系统中会被分开计算。
  • Linux:如果不开启SMP支持,SMT,多核,smp都不支持,所有的形式都会被算作一个物理CPU。好在大多数Linux不限制CPU数量。对于realtime内核,从原理上来讲,虽然支持多CPU,但仍然仅会显示1个CPU。
  • SQLServer:以物理cpu计算,多核和SMT都被算作一个CPU。当然比较变态是仅支持1G空间,1G内存和1个CPU尚且不支持备份的express版本,免费。
  • oracle:同SQLServer,也有阉割版本的4G空间,1G内存,1个CPU的express版本,免费。

看起来业界通用的还是只把真正的物理CPU数量作为软件的限制。对于服务器而言,更多的CPU数量意味着更大的并发数以及更耐压的系统。

,

  1. No comments yet.
(will not be published)