intra-mart Accel Platform 配置文件参考 第26版2020-08-01

树脂具有将系统状态输出到PDF报告的功能。

取得报告

获取报告的一种简单方法是使用命令“ pdf-report”。 pdf-report请求服务器立即生成报告。

Linux示例

> resinctl pdf报告

Windows示例

> resin.exe pdf报告

自动生成PDF报告

可以在health.xml中配置PDF报告,以每周生成一次。它也可以在诸如重启之类的事件期间生成。
<health:PdfReport> <path> $ {resin.root} /doc/admin/pdf-gen.php </ path> <report>摘要</ report> <period> 7D </ period> <snapshot /> <mail -to> $ {email} </ mail- > <mail-from> $ {email_from} </ mail-from> <!-<profile-time> 60s </ profile-time>-> <health: IfCron 值= “ 0 0 * * 0” /> </健康状况:PdfReport>
上面的示例创建快照,生成PDF报告,并将其每周发送到指定的电子邮件地址。
目标电子邮件地址在resin.properties中描述。
#设置电子邮件地址以每周接收并重新启动PDF报告电子邮件:admin@example.com
以下示例在由看门狗重新启动时生成PDF文件。
<health:PdfReport> <path> $ {resin.root} /doc/admin/pdf-gen.php </ path> <title>重新启动</ title> <watchdog /> <mailto> user@example.com </ mailto> <运行状况:OnRestart /> </运行状况:PdfReport>

报告概述

以下信息输出到报告。
  • 服务器环境概述 -JavaVM,OS,Resin版本等
  • 健康状况图表-统计图表,直到输出报告
  • 转储-顶部堆内存使用情况
  • 在CPU配置文件的最活跃的位置- CPU简介
  • Thread转储 -快照获取时Resin中的所有Thread
  • 日志报告-从java.util.logging输出的最新“警告”级别消息
  • JMX转储 -快照获取时的所有JMX Mbean数据
报表设计用于多种情况。
  • 树脂错误报告-树脂本身的支持使快照更易于故障排除和调试
  • 重新启动和崩溃分析-如果JavaVM由于任何原因崩溃,看门狗报告可以帮助确定原因
  • CPU和性能-如果JavaVM意外使用CPU,报告可以显示主要原因
  • Thread锁定 - Thread转储和CPU可用于定位锁定的代码

堆转储

堆转储概述了系统的内存分配。它可用于检查异常的内存分配。
堆转储按Object 本身及其后代的大小按“自我+降序”的顺序排序。例如,java.lang.String包含char []作为其“ self + desc”的一部分。
以下示例是典型的空闲Resin的堆转储。
类名self + desc self count字节[] 22.23M 22.23M 14741 com.caucho.db.block.Block 20.28M 134.9K 2410 char [] 13.89M 13.89M 122606 com.caucho.util.LruCache 7.52M 30.4K 317 java .lang.String 7.15M 1.97M 61426 ..
第一个字节[]和Block主要是Resin的内部代理缓存和分布式缓存数据库 。注意,“自我”的“块”要小得多。这是因为每个块的“ self + desc”都有一个大字节[]缓冲区。
同样,java.lang.String中的“ self + desc”比“ self”大得多,因为它包含char []缓冲区。

类加载器堆转储

堆转储中的项目分别显示类加载器的内存使用情况。
您可以使用此报告根据类检查内存泄漏。

Thread转储

对于CPU问题或Thread卡死,您可以检查Thread转储以查看每个Thread对系统的作用。
您可以从报告中跟踪在异常点处连续锁定了多少个Thread。
Thread转储报告合并具有相似堆栈跟踪的Thread。合并的Thread一起列出。
由于持有锁和阻塞Thread的Thread进行分组,这样更容易Thread是否阻止大量Thread的持续。
以下示例显示了正常的阻塞情况。 JDK的SSL实现仅接受一个Thread的连接,所有其他Thread将等待第一个Thread。
在这种情况下,名为“ http:// *:8444-17 ”的Thread拥有SocksSocketImpl。由于锁定,三个Thread并排等待。 (“ Http:// *:8444-1 ”,“ http:// *:8444-10 ”,“ http:// *:8444-11 ”)
http:// *:8444-17 java.net.PlainSocketImpl.socketAccept锁定的java.net.SocksSocketImpl@1199747469 java.net.PlainSocketImpl.accept java.net.ServerSocket.implAccept ... com.caucho.env.thread .ResinThread.runTasks com.caucho.env.thread.ResinThread.run http:// *:8444-1等待[126]拥有的java.net.SocksSocketImpl@4782b18d http:// *:8444-17 http:// / *:8444-10在[126]拥有的java.net.SocksSocketImpl@4782b18d上等待http:// *:8444-17 http:// *:8444-11在[[]拥有的java.net.SocksSocketImpl@4782b18d上等待126] http:// // *:8444-17 java.net.PlainSocketImpl.accept java.net.ServerSocket.implAccept com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept ... com.caucho.env.thread .ResinThread.runTasks com.caucho.env.thread.ResinThread.run ...

CPU配置文件

由于树脂的限制,CPU配置文件无法输出到PDF报表。
“在所选时间段内未生成CPU配置文件。”

记录中

将输出最新的警告日志。

日志(警告)2011-09-21 11:06:07警告WarningService:树脂由于配置更改而重新启动

JMX转储

JMX转储将打印系统中的所有JMX MBean及其值。

JMX转储JMImplementation:类型= MBeanServerDelegate ImplementationName Resin-JMX ImplementationVendor Caucho Technology ImplementationVersion Resin-4.0.s110921 MBeanServerId Resin-JMX SpecificationName Java管理扩展SpecificationVendor Sun Microsystems SpecificationVersion 1.4 com.sun.management:type=HotSpotDiagnostic ...