WildFlyJVM选项与内存信息查询指南
立即解锁
发布时间: 2025-08-20 00:15:10 阅读量: 1 订阅数: 3 


WildFly实战:配置、部署与管理
### WildFly JVM选项与内存信息查询指南
#### 1. 检查JVM选项
在运行WildFly时,我们可以通过向命令行界面(CLI)调用命令来获取使用的JVM选项。
##### 1.1 准备工作
确保WildFly已远程运行,其IP地址为192.168.59.103。
##### 1.2 操作步骤
- **步骤一:打开新终端窗口并执行以下命令**
```bash
$ cd WILDFLY_HOME
$ ./bin/jboss-cli.sh -c --controller=192.168.59.103:9990 --user=wildfly --password=cookbook.2015 --command="/core-service=platform-mbean/type=runtime:read-attribute(name=input-arguments,include-defaults=true)"
```
执行上述命令后,会得到类似以下的输出:
```json
{
"outcome" => "success",
"result" => [
"-D[Standalone]",
"-Xms64m",
"-Xmx512m",
"-XX:MaxPermSize=256m",
"-Djava.net.preferIPv4Stack=true",
"-Djboss.modules.system.pkgs=org.jboss.byteman",
"-Djava.awt.headless=true",
"-Dorg.jboss.boot.log.file=/home/wildfly/WFC/wildfly/standalone/log/server.log",
"-Dlogging.configuration=file:home/wildfly/WFC/wildfly/standalone/configuration/logging.properties"
]
}
```
- **步骤二:提取所需信息**
如果只需要特定信息,可以使用`awk`命令进行提取,例如:
```bash
$ ./bin/jboss-cli.sh -c --controller=192.168.59.103:9990 --user=wildfly --password=cookbook.2015 --command="/core-service=platform-mbean/type=runtime:read-attribute(name=input-arguments,include-defaults=true)" | awk 'NR==6 { print $1 }'
```
输出结果可能为:
```
"-Xmx521m",
```
- **步骤三:域模式下的调用**
如果WildFly以域模式运行,调用命令如下:
```bash
$ ./bin/jboss-cli.sh -c --controller=192.168.59.103:9990 --user=wildfly --password=cookbook.2015 --command="/host=master/server=server-one/core-service=platform-mbean/type=runtime:read-attribute(name=input-arguments,include-defaults=true)" | awk 'NR==6 { print $1 }'
```
输出结果同样可能为:
```
"-Xmx521m",
```
##### 1.3 工作原理
`jboss-cli.sh`脚本会执行`--command`参数中定义的命令,并将结果返回至标准输出。
##### 1.4 使用HTTP API(以`curl`为例)
WildFly还提供了HTTP API,我们可以使用`curl`工具进行尝试。
- **步骤一:执行未认证的请求**
```bash
$ curl --verbose http://192.168.59.103:9990/management/core-service/platform-mbean/type/runtime?operation=attribute\&name=input-arguments\&include-defaults=true
```
此时会收到401未授权的响应,因为WildFly管理接口使用了Digest认证。
- **步骤二:提供用户名和密码**
```bash
$ curl --verbose --digest --user wildfly http://192.168.59.103:9990/management/core-service/platform-mbean/type/runtime?operation=attribute\&name=input-arguments\&include-defaults=true
```
输入密码后,会得到正确的响应。
- **步骤三:去除`--verbose`标志**
```bash
$ curl --digest --user wildfly:cookbook.2015 http://192.168.59.103:9990/management/core-service/platform-mbean/type/runtime?operation=attribute\&name=input-arguments\&include-defaults=true
```
此时会得到简洁的JSON输出。
- **步骤四:美化JSON输出**
```bash
$ curl --digest --user wildfly:cookbook.2015 http://192.168.59.103:9990/management/core-service/platform-mbean/type/runtime?operation=attribute\&name=input-arguments\&include-defaults=true\&json.pretty=true
```
输出结果会以美化的JSON格式呈现。
#### 2. 检查JVM内存信息
我们可以通过向CLI调用命令来获取JVM的各种内存信息,包括堆内存、非堆内存、元空间(Java 7及以前为PermGen)、Eden区、老年代和幸存者区。
##### 2.1 准备工作
确保WildFly已远程运行,其IP地址为192.168.59.103。
##### 2.2 操作步骤
###### 2.2.1 堆内存信息
- **步骤一:打开新终端窗口并执行以下命令**
```bash
$ cd $WILDFLY_HOME
$ ./bin/jboss-cli.sh -c --controller=192.168.59.103:9990 --user=wildfly --password=cookbook.2015 --command="/core-service=platform-mbean/type=memory:read-attribute(name=heap-memory-usage,include-defaults=true)"
```
输出结果如下:
```json
{
"outcome" => "success",
"result" => {
"init" => 67108864L,
"used" => 90009368L,
"committed" => 199753728L,
"max" => 477626368L
}
}
```
- **步骤二:提取所需信息**
```bash
$ ./bin/jboss-cli.sh -c --controller=192.168.59.103:9990 --user=wildfly --password=cookbook.2015 --command="/core-service=platform-mbean/type=memory:read-attribute(name=heap-memory-usage,include-defaults=true)" | awk 'NR==7 { print $0 }'
```
输出结果可能为:
```
"max" => 477626368L
```
- **步骤三:域模式下的调用**
```bash
$ ./bin/jboss-cli.sh --connect --controller=192.168.59.103:9990 --user=wildfly --password=cookbook.2015 --command="/host=master/server=server-one/core-service=platform-mbean/type=memory:read-attribute(name=heap-memory-usage,include-defaults=true)"
```
###### 2.2.2 非堆内存信息
- **步骤一:打开新终端窗口并执行以下命令**
```bash
$ cd $WILDFLY_HOME
$ ./bin/jboss-cli.sh -c --controller=192.168.59.103:9990 --user=wildfly --password=cookbook.2015 --command="/core-service=platform-mbean/type=memory:read-attribute(name=non-heap-memory-usage,include-defaults=true)"
```
输出结果如下:
```json
{
"outcome" => "success",
"result" => {
"init" => 2555904L,
"used" => 55613336L,
"committed" => 62128128L,
"max" => -1L
}
}
```
- **步骤二:提取所需信息**
```bash
$ ./bin/jboss-cli.sh -c --controller=192.168.59.103:9990 --user=wildfly --password=cookbook.2015 --command="/core-service=platform-mbean/type=memory:read-attribute(name=non-heap-memory-usage,include-defaults=true)" | awk 'NR==5 { print $0 }'
```
输出结果可能为:
0
0
复制全文
相关推荐








