系统故障排除
保存 Junos OS 进程生成的核心文件
默认情况下,当内部 Junos OS 进程生成核心文件时,该文件和关联的上下文信息将保存在名为 /var/tmp/process-name.corecore-number 的压缩 tar 文件中,以便进行调试。TGZ。上下文信息包括配置和系统日志消息文件。
要禁用核心文件和相关上下文信息的保存,请执行以下作:
[edit system] no-saved-core-context;
要仅保存核心文件,请执行以下作:
[edit system] saved-core-files number;
其中 number 是要保存的核心文件数,可以是 1 到 10 之间的值。
要保存核心文件和上下文信息,请执行以下作:
[edit system] saved-core-context;
查看 Junos OS 进程中的核心文件
当内部 Junos OS 进程生成核心文件时,您可以在 /var/crash/ 和 /var/tmp/ 中找到输出。对于 Junos OS 演化版,您可以在 /var/core/ (对于路由引擎核心文件)和 /var/lib/ftp/in/ (对于 FPC 核心文件)找到输出核心文件。使用这些目录,可以快速查找大型网络中的核心问题。
使用 CLI 命令 show system core-dumps 查看核心文件。
root@host> show system core-dumps -rw------- 1 root wheel 268369920 Jun 18 17:59 /var/crash/vmcore.0 -rw-rw---- 1 root field 3371008 Jun 18 17:53 /var/tmp/rpd.core.0 -rw-r--r-- 1 root wheel 27775914 Jun 18 17:59 /var/crash/kernel.0
另见
收集系统状态计数器以捕获用于系统调试的信息
您可以在网络设备上收集和存档系统状态计数器。当您请求 JTAC 帮助调试系统上的问题时,您和您的 JTAC 支持团队可以在系统问题发生之前定期查看系统上发生的情况。
支持此功能的网络设备运行 shell 脚本,该脚本定期收集 RE、PFE 和 SHELL 计数器以及其他系统状态计数器。计数器要么与协议相关,要么与 CPU 相关。收集的计数器保存在 var/log 目录的 counter.log 文件中。同一目录中的 counter.info 文件记录脚本执行参数的设置。
计数器用时间戳写入 counter.log 文件中,这在调试过程中很有帮助。
您可以通过两种方式自定义脚本的执行:
您可以通过编辑 counter.info 文件来更改默认脚本执行参数值。您必须登录才能
super-user执行此任务。请参阅 如何更改脚本执行参数值。您可以重新启动,然后停止脚本的执行。通常,您会这样做,因为 counter.info 文件已被删除或编辑。请参阅 如何重新启动或停止脚本的执行。
shell 脚本中包含了哪些内容以及它是如何运行的?
定期收集两组计数器:
-
第 1 组— 此集以 9 秒的快速间隔定期收集时间敏感应用程序的系统状态。
-
SET2— 此集以 60 分钟的慢间隔定期收集系统状态。
该软件在开始收集 SET1 和 SET2 计数器之前会检查 CPU 使用率。如果软件检测到较高的 CPU 使用率(85% 或更高),则它不会收集通常指定的计数器,而是收集不同的计数器,这些计数器构成的集合比通常指定的计数器集要小。
下面是脚本的运行方式:
shell 脚本在网络设备启动 240 秒后开始运行。
SET1 首先运行。
如果 SET1 中的任何命令未在分配的时间内完成,则脚本将截断该命令的运行,将 CLI 输出集合保存到
counter.log文件中,然后继续执行下一个命令。当 SET1 的运行完成时,SET2 开始。同样,任何未在分配时间内完成的命令都将被截断,CLI 输出集合将保存到
counter.log文件中,脚本将移动到下一个行项。如果在任何 CLI 输出收集期间重新启动或停止脚本运行,则该脚本将完成正在进行的 CLI 输出收集,然后正常退出。
如何更改脚本执行参数值
您可以更改 shell 脚本执行参数值,例如 SET1 和 SET2 的 CLI 列表或要存档的日志文件数。您必须登录 as super-user 才能对参数值进行更改。
表 1 列出了可在 counter.info 文件中编辑的参数设置。
| 设置 | 说明 | 默认 | 使用说明 |
|---|---|---|---|
| SET1_TIME | 以快速时间间隔(以秒为单位)运行订单项的 SET1 集合的时间间隔 | 9 秒 | 设置为 < SET2_TIME |
| SET2_TIME | 以较慢的时间间隔(以秒为单位)运行 SET2 订单项集合 | 3600 秒 | 设置为 > SET1_TIME |
| MAX_CLI_EXECUTION_TIME | 等待完成每个 CLI 输出收集的最大时间间隔(以秒为单位) | 25 秒 | 如果 CLI 输出收集花费的时间超过此时间,则脚本将终止该特定 CLI 输出收集,并在脚本中执行下一个语句。此行为可确保脚本执行所有语句。 |
| SET1_ON | 用于启用和禁用快速计数器收集 | 1(启用) | |
| SET2_ON | 用于启用和禁用慢速计数器收集 | 1(启用) | |
| LOG_FILE_ARCHIVE_MIN_SIZE | 要存档 counter.log 文件的最小大小 | 1024 千米赛 | |
| LOG_FILE_ARCHIVE_COUNT | 要存档的 counter.log 文件数 | 10 | |
| 版本 | counter.info 文件的版本号 |
谨慎:
不要更新
/var/log/counter.info文件中的 VERSION 值。
|
|
| 在脚本中运行的命令的 SET1 和 SET2 CLI 列表 | CLI 列表分为以下子列表:
注意:如果检测到 CPU 使用率为 >85 RE_CPU、PFE_CPU 和 SHELL_CPU 中提及的 CLI 输出将按 SET1_TIME 和 SET2_TIME 的间隔进行收集。
|
每组都附带一个默认的 CLI 命令列表。 | 如果默认 CLI 列表未提供所需的所有系统信息,请编辑 CLI 列表以获取所需其他系统信息的计数器。 |
如何重新启动或停止脚本的执行
如果在 counter.info 文件中进行更改,请使用 restart 命令手动运行脚本:
user@host> request restart system-counter-script
stop使用命令停止脚本的运行:
user@host> request stop system-counter-script