我从GoDaddy那里购买了一台虚拟私人服务器并在其上安装了GlassFish 4。我正在服务器上进行性能调优。
我遇到了以下问题:
使用GlassFish管理更容易更改某些设置 控制台,而不是在配置文件中四处寻找 他们自己。 一个示例是acceptor线程,应将其设置为与服务器中CPU核心数相等的数字。所以,如果你有2个CPU 每个4核,值应为8。
您能否告诉我如何才能知道我拥有多少CPU,以及我应该设置多少值?
答案 0 :(得分:1)
如果您不需要以编程方式查找,则可以执行以下操作:
grep processor /proc/cpuinfo | wc -l
这将为您提供核心数量,包括超线程,可用到内核等。要排除此类虚拟核心:
grep 'core id' /proc/cpuinfo | sort | uniq | wc -l
在程序中,您会发现标准库(如果它们具有线程支持)提供了获取硬件线程(核心)数量的方法。在C ++中,您可以在python中使用std::thread::hardware_concurrency()
, multiprocessing.cpu_count()
。
但是,取决于"虚拟化"在您的提供商处,核心可用的核心数量可能高于虚拟专用系统可用的核心数量。你必须检查你的合同,看看他们保证你有多少核心。如果他们没有对此做出任何声明,您必须进行基准测试,尽管这可能取决于一天中的时间(以及与您共享相同硬件的其他人产生的负载)。