管理节点

当节点正在运行的时候,它暴露了一个 RPC 接口可以让你来监测它,你可以上传和下载附件,访问 REST API 等等。一个绑定的 Jetty web server 通过 HTTP 暴露了同样的接口。

Logging

默认的,节点的 log 文件会存储在工作目录下的 logs 子目录中,并且会随时的更新。你可以通过传入 –log-to-console 命令行参数来同样将日志打印在 console 中。默认的日志等级是 INFO,可以通过 –logging-level 命令行参数来调整。更多的自定义 logging,可以通过将一个 Log4j2 配置文件指配给 log4j.configurationFile 系统属性的方式来彻底重写 logger 的设置。

数据库访问

节点通过一个 socket 暴露了它的内部数据库,这个数据库可以使用任何使用 JDBC drivers 的工具所浏览。JDBC URL 会在节点启动的时候被打印在 console 中,像下边这样:

jdbc:h2:tcp://192.168.0.31:31339/node

用户名和密码可以在节点配置中进行更改,默认的用户名是“sa”,密码是空。

可以使用任何支持 JDBC 的数据库访问工具,但是如果你有 IntelliJ Ultimate edition,那么你的 IDE 有一个集成的工具可以使用。只需要打开 database window,并根据上边的详细信息添加一个 H2 data source。然后你就可以在里边浏览表和数据了。

监控你的节点

像大多数的 Java servers 一样,节点通过业界标准的 JMX infrastructure 暴露了很多有用的 metrics 和管理维护方法。JMX 是一个标准的 API,通常被称为 MBeans… 对象,它的属性和方法通常被用来进行 server 管理。为了 export,它不需要任何指定的网络协议。所以从节点中可以使用多种方式来导出数据:一些监控系统提供一个“Java Agent”,它是一个查找所有的 MBeans 并且通过网络向他们发送一个统计数据搜集器(statistics collector)的 JVM plugin。对于这些系统,按照 vendor 提供的指导去使用他们。

Jolokia 允许你不需要直接连接 JMX port 就可以访问 raw data 和维护操作。节点通过 HTTP 在 /jolokia HTTP endpoint 上导出数据,Jolokia 定义了 JSON 和 REST 格式来访问 MBeans,也提供了客户端类库来跟这个协议一同工作。

有以下几种方式来创建 dashboard 并导出节点的监控数据:

  • JMX2Graphite 是一个工具,可以用来指定/监控/json 并获得指标数据,然后将他们定期地插入到 Graphite 监控工具。它在 Docker 中运行,并且可以通过一个简单的命令来启动。
  • JMXTrans 是对 Graphite 的另外一个工具,它会有一个自己的 agent(JVM plugin),用来读取一个自定义的 config 文件并且只导出 named data。相对于 JMX2Graphite 它更具有可配置性,并且不需要一个单独的 process,因为 JVM 会直接向 Graphite 中写入。
  • Cloud metrics service 像 New Relic 同样理解 JMX,通常会提供他们自己的 agent,按照常规的计划来将数据上传到他们的服务中。
  • Telegraf 是一个工具,来搜集、处理、聚合并且书写 metrics。它可以使用他们的 plugin 系统连接任何的数据输入和输出,比如 Telegraf 能够被配置来从 Jolokia 搜集数据,然后写到 DataDog web api。

内存使用和优化

对所有的垃圾搜集程序来说,如果你给他们更多的内存他们会运行的更快,因为他们会更少地需要去搜集。默认的如果你让 JVM 消耗掉你系统中的所有内存的话,那么 JVM 会很愿意那样去做的,Corda 默认会设置为相对比较小的 200mb Java heap。当其他的部分也在消耗内存的时候,一个节点的内存的总体使用量大概会在 500mb 左右(这些消耗可能来自于编译代码、metadata、off-heap buffers、线程栈等)。

如果你希望你的节点更快并且想要超过 GC 最大值的话,或者你的节点出现了 out of memory 的问题,你可以用下边的参数给节点分配更多的内存:

java -Xmx1024m -jar corda.jar

这个例子命令会提供一个 1 gigabyte Java heap。

注意:JVM 不会允许你限制被 Java 程序所使用的内存,仅仅允许你可以修改 heap size。

发表评论

电子邮件地址不会被公开。 必填项已用*标注