Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

检查路由 CPU 的内存使用情况

 

用途

路由器上的软件进程可能会占用大量 CPU 和内存。路由协议进程(rpd)可能会占用大量内存来存储路由和相关协议所需的信息,例如边界网关协议(BGP)、开放最短路径优先(OSPF)、中级系统到中间系统(ISIS)、资源预留协议(RSVP)、标签分配协议(LDP)和 MPLS (MPLS)。

要验证通过路由器的流量并检查内存使用率,请执行以下步骤:



检查整体 CPU 和内存使用情况

用途

您可以显示有关在路由器上运行的软件进程的详尽系统进程信息,并控制端子。此命令等效于 UNIX top 命令。但是,UNIX top命令显示实时内存使用情况,内存值不断变化,而show system processes extensive命令在给定时刻提供内存使用情况的快照。

操作

要检查整体 CPU 和内存使用情况,请输入以下 Junos OS 命令行界面(CLI)命令:

示例输出

user@R1> show system processes extensive

含义

示例输出显示路由引擎和软件进程使用的虚拟内存量。例如,118 MB 物理内存是可用空间,而交换文件的 512 MB 则空闲,表示路由器的内存不是很短。T4000 路由器不支持 批处理字段显示大多数58进程均处于 睡觉状态,1在 运营状态。运行的进程或命令就是top 命令。

T4000 路由器不支持 命令列中列出了当前正在运行的进程。例如,机箱进程(chassisd之间的接线具有进程标识符(P&ID)的4480,具有最新优先级(PRI)(2)。优先级较低的数字表示优先级更高。

这些流程按活动级别列出,最活跃的流程位于输出顶部。例如,机箱(chassisd)进程正在占用最大数量的 CPU 资源,2.34%。

的内存字段(成员)显示由路由引擎管理并由进程使用的虚拟内存。内存字段中的值为 KB 和 MB,并按以下方式分解:

  • Active—由程序分配并实际使用的内存。

  • Inact—已分配但未在最近使用的内存或由程序释放的内存。非活动内存仍在一个或多个进程的地址空间中进行映射,因此会计入这些进程的常驻集大小。

  • 星形—不符合交换条件的内存,通常用于由进程锁定的路由引擎内存结构或内存。

  • 缓存—不与任何程序相关联且不需要在重新使用之前交换的内存。

  • Buf—内存缓冲区的大小,用于容纳最近从磁盘中调用的数据。

  • 免费—不与任何程序相关联的内存。进程释放的内存可能成为 活动缓存免费,具体取决于进程用于释放内存的方法。

当系统处于内存压力之下时,pageout 进程将重用空闲、缓存、非活动和必要时活动页中的内存。

T4000 路由器不支持 换位 字段显示可用的总交换空间和未使用的数量。在本例中,输出显示了 512 MB 的总交换空间和 512 MB 可用交换空间。

最后,列出了每个进程的内存使用情况。T4000 路由器不支持 SIZE字段指示虚拟地址空间的大小, 分辨率字段指示物理内存中的程序数量,也称为 RSS 或常驻集大小。在示例输出中,机箱(chassisd)进程具有 3728 KB 的虚拟地址空间和 1908 KB 的物理内存。



检查路由协议进程(rpd)内存使用情况

用途

当您注意到大量内存使用情况时,您可以获取有关路由任务内存利用率的详细信息,以了解所发生的情况。路由进程(rpd)是使用路由引擎内存的主要任务。

操作

要检查路由进程内存使用情况,请输入以下 Junos OS CLI 操作模式命令:

示例输出

user@host> show route summary

含义

示例输出显示有关路由表(show route summary 命令)中的条目以及路由进程(rpd)的内存使用分解show task memory detail (命令)的汇总统计数据。这两个命令提供路由协议进程的内存利用率的全面了解。

show route summary命令显示各种路由表中的路由数。在示例输出中,所代表的路由表为 inet 0inet 2inet 3iso。0mpls。0. 在每个路由表中,所有活动的、保留式和隐藏的目标和路由都汇总了从其获知路由的所有协议。路由位于 按住声明为非活动之前的状态,并且 隐藏路由策略不使用路由。中的路由 按住隐藏状态仍在使用内存,因为它们出现在路由表中。

此外,还会汇总以下类别中的路由:直接连接到网络的那些(Direct)、本地路由(本地)以及从配置的路由协议(如 BGP 和 IS-IS)获知的路由。

show task memory detail命令将列出由路由协议进程(rpd)运行的任务内的数据结构。根据路由器’的配置启用任务。例如, isis_area_addr是由 IS-IS 配置产生的数据结构。T4000 路由器不支持 AllocBytes字段指示数据结构使用的最大内存量。例如, isis_area_addr数据结构具有544分配内存块,分配的每个块的值为16字节,导致分配的字节为8704。分配的最大块和字节是数据结构的高位标记。有关显示与任务相关的信息的详细信息,请参阅Display Tasks

T4000 路由器不支持 使用中的总字节数 字段显示路由协议进程(rpd)使用的总内存量。



显示任务

用途

您可以显示有关任务的信息,进一步调查路由器上的内存问题。

操作

要显示路由器上启用的任务列表,请输入以下 Junos OS CLI 操作模式命令:

示例输出

user@R1> show task

含义

示例输出显示了当前在路由器上运行的路由、路由协议和接口任务的列表(show task)、内存使用率(show task memory)摘要以及特定任务的内存使用情况(show task io)。无论路由器配置是什么,还是依赖于路由器配置的其他任务,任务都可以是执行的基准任务。例如, BGP_Group_internal任务是在路由器上配置 BGP 的结果,而 INET6任务是与路由流程(rpd)关联的基本任务。

show task 命令输出中的每项任务都有优先级和任务名称。例如,当前优先级为10,表示 LMP 客户端和 80 for 如果删除. 较低的数字表示优先级更高。

某些任务附加了标志。例如, BGP.0.0.0.0+179 任务有两个标志, 接受LowPrio.T4000 路由器不支持 接受标记表示任务正在等待传入连接, LowPrio标志表示任务将被调度为在其他更高优先级的任务之后读取其套接字。两个附加标志 互连互通,表示任务正在等待连接完成, 删除,表示任务已删除且正被清除。

show task io命令显示为每个 IO 操作收集的统计信息。这些计数器显示以下内容:

  • 都会—当数据报到达已连接的任务套接字并调用任务’的 read 回调时,此计数器将递增。

  • 输出—当任务的已连接套接字变为可写且调用任务’的回调时,此计数器将递增。

  • Rcvd—此计数器在任务调用路由引擎以从可能连接的套接字中读取数据报时递增。

  • 出去—当任务尝试读取或写入现有或 nonexisting 套接字上的数据报时,此计数器将递增。

  • 下沉—当任务尝试通过路由引擎在预建套接字上读取或写入数据报时,此计数器将递增,但是请求会因任何原因失败。