通过 Thread Dump 和 Heap Dump 自动化操作
自动化执行 Thread Dump 和 Heap Dump,减少人工干预,提升应用和服务器性能。
注意
运行 Thread Dump 和 Heap Dump 自动化需要在环境变量路径中设置 JAVA_HOME,且 JVM 必须包含 jsp、jstack 和 jcmd 软件包。
使用场景
当应用的响应时间超过正常值(如 400ms)时,可能是由于潜在的死锁或内存泄漏所致。在这种情况下,当应用响应缓慢时生成 Thread Dump 或 Heap Dump,有助于确定真正的根本原因。
注意
Thread Dump 用于检查是否陷入死锁状态,Heap Dump 用于检测内存泄漏。
问题
向应用添加后台任务后,应用的整体响应时间增加。我们需要了解当时创建的对象的实际状态。
解决方案
添加线程和堆转储自动化,并将其关联到响应时间属性,以便在阈值突破时创建转储文件。
添加自动化
支持的服务器代理版本:Linux 16.6.0 及以上
- 登录 Site24x7,进入管理 > IT 自动化模板 (+)。您也可以导航至服务器 > IT 自动化模板 (+)。
- 选择 Thread Dump 或 Heap Dump 作为自动化类型。
- 填写显示名称以便识别。
例如:对于上述场景,显示名称可以填写"内存泄漏转储文件"。 - 填写保存转储文件的绝对文件路径。
注意- 如果您将转储文件保存在服务器代理文件夹 /opt/site24x7/monagent 中,删除代理时这些文件也会被清除。如果将转储文件保存在服务器代理文件夹之外,即使删除代理,文件也会保留。
- Heap Dump 文件以 HPROF 格式保存,Thread Dump 文件以 TXT 格式保存。
- 选择执行 Thread Dump 或 Heap Dump 的主机,可选择多个主机并行执行。
注意- 您可以选择 $LOCALHOST,在任何发生阈值或状态变化违规的主机上执行自动化。在 APM 应用级别启用自动化时,当发生阈值或状态变化违规,自动化将在应用中所有违规服务器上运行。
- 输入超时时间(秒),表示代理等待命令执行完成的最长时间。超时后将出现超时错误,如果配置了当监视器宕机时通过邮件发送根本原因分析报告选项,错误信息将记录在邮件报告中。
注意- 超时时间默认设置为 15 秒,您可以设置 1-90 秒之间的超时时间。
- 您可以选择将自动化结果发送至邮件,发送给通知配置文件中配置的用户组。默认设置为否。该邮件将包含自动化名称、自动化类型、事件原因、目标主机等参数。
注意- 如果在一次数据采集中执行了多个自动化操作,将发送一封汇总邮件。
- 保存更改。
注意添加自动化后,可安排这些自动化操作按顺序依次执行。
通知配置文件设置
在通知配置文件中配置以下设置:
- 执行关联的 IT 自动化后,若仍为宕机/警告状态则发出通知:设置为"是"时,如果执行指定操作后监视器仍处于中断状态,您将立即收到宕机或警告状态的告警通知。
- 抑制依赖监视器的 IT 自动化:当依赖资源处于宕机状态时,不执行 IT 自动化操作。
测试自动化
添加自动化后,进入 IT 自动化摘要页面(服务器 > IT 自动化模板),使用
图标进行测试运行。了解更多。
注意
测试运行将应用于所有选定的命令执行主机,但仅选择 $LOCALHOST 作为主机的情况除外。
点击IT 自动化日志,按日期查看已执行的自动化列表。
映射自动化
要执行自动化,需将其与一个或多个监视器或属性进行映射。有两种方式可以实现:
相关文章
- Site24x7 IT 自动化入门
- 其他支持的自动化工具:Windows 服务 | 服务器脚本 | 服务器命令 | 调用 URL/REST API | 服务器重启 | 标记为维护 | Hyper-V | IIS
- IT 自动化日志
- 服务器监控架构
- 添加服务器:Windows | Linux
- 支持的 Microsoft 应用程序
- 配置文件
