java进程只吃1个cpu核心

时间:2013-05-20 12:51:42

标签: java maven jvm jvm-arguments

我使用maven使用以下命令运行我的程序:

mvn exec:java -Dexec.mainClass="some.path.to.my.class"

在Linux多CPU服务器上。当我检查CPU使用率时,我发现java只吃1个CPU核心。 我在某处读到设置-server参数可能有所帮助。

我必须设置哪些参数以及如何使用mvn exec:java命令传递它们?

2 个答案:

答案 0 :(得分:1)

您可以在pom中配置的commandlineArgs部分设置它,如documentation

中所述

例如:

 <build>
<plugins>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
      <execution>
        <goals>
          <goal>exec</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <executable>maven</executable>
      <commandlineArgs>-server</commandlineArgs>
    </configuration>
  </plugin>
</plugins>

虽然我不确定这是你的问题 - 你有没有写过多线程代码?您无需在服务器模式下运行JVM即可使用多个线程。

答案 1 :(得分:1)

处理器相似性使您可以将线程或进程绑定到特定的CPU内核。 Java不支持处理器关联,但是我们可以使用taskset命令设置进程关联。假设我们有一个Java进程正在运行,我们想将其固定到特定的CPU。 请查看以下链接以了解更多详细信息,并找到具体方法: cpu pinning java