Analytics and Automation Software : Cisco Data Virtualization

CIS出于内存错误排除故障

2016 年 10 月 27 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈

简介

本文描述使用为了响应到在思科信息服务器(CIS)的内存的最初的进程(OOM)错误外面。

贡献用布莱德邵和苏雷什库马尔Venkatesan, Cisco TAC工程师。

先决条件

要求

Cisco 建议您了解以下主题:

  • CIS
  • OOM错误

使用的组件

本文档中的信息根据CIS版本v6.2.0。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

排除故障OOM错误

这些步骤提供您应该使用最初的进程的概述,当您收到OOM错误时:

  • 若可能识别罪犯查询并且验证增殖率。
  • 识别所有服务器内存泄漏(及早浪费)的不可恢复的内存。
  • 确定您的查询是否是原因或内存耗尽的受害者。

查看内存图表

如果固体绿线路(总内存)在集合内存盖帽附近盘旋,当活动请求当前不运行时和黄线(管理的内存)在底部附近,也许有泄漏。

重复性尝试的搜索能执行自动碎片收集

cs_server.log文件中,有看起来与此相似的多个连续的条目:

-------------------------------------------------------------------------------
INFO 2012-09-25 13:44:02.816 -0400 RequestManager - Performing GC because there
is not enough Java memory to start a request. GC took 7709 ms.
INFO 2012-09-25 13:44:10.520 -0400 RequestManager - Performing GC because there
is not enough Java memory to start a request. GC took 7704 ms.
INFO 2012-09-25 13:44:26.202 -0400 RequestManager - Performing GC because there
is not enough Java memory to start a request. GC took 7768 ms.
-------------------------------------------------------------------------------

这表明内存是不可恢复的,当碎片收集(GC)时无法是有效Java虚拟机每次确定是时间执行GC,并且GC重复自己。

请使用自由未使用内存按钮

当您使用自由未使用内存按钮时,执行我们的JVM手工的GC。如果总内存在图表不能恢复,也许有泄漏,或者JVM决定不需要发布某个内存。

清除被累计的完成请求

您能清除在工作室管理器请求控制台出现的被累计的完成请求。当前完成行项目,特别是那些从肥皂客户端,有时消耗在该内存上的非常内存暂挂,直到从显示被清除。

识别问题

预计泄漏开始的时间。如果包含泄漏内存图表的部分(从未恢复)的向上上升开始滚动通过图表,您也许能查找预计时间出现从cs_server_status.log文件。为了到达此文件,请导航对<CIS_INSTALL_DIRECTORY> >日志> cs_server_status.log。默认情况下,多种服务器活动的快照写入到此日志每60分钟。为了跟踪整体堆在使用中,请查看状态日志的此部分:

----------------
| Memory Dump |
----------------

请勿一度搜索,当堆大小突然上升和落时。当罪犯事件发生了,这给您估计。也有当时运行,也许提供提示向可能的问题查询的快照。如果识别期限,当内存大量地浪费时,您能寻找在包含此报头的状态日志的部分:

----------------
| Top Requests |
----------------

这是当时使用多数内存请求的列表。您能也看到在工作室请求控制台显示的此。

这时,您也许需要重新启动服务器和开始周期地监控内存图表为了注意可疑内存使用。

注意:在v6.2中,当OOM检测时,堆转储文件名为/logs/ " javapid<*>.hprof自动地被生产。当您查看此文件时,指示,当内存被耗尽了。并且,您能发送此文件对思科支持团队,以便可以对于线索分析。

有时没有泄漏,但是完全导致错误的一非常内存密集的查询。通常内存是可退回的,在查询发生故障后,并且您能继续多数其他活动。寻找一尖峰并且落在内存图表。

如果OOM错误是由单个可识别的查询造成的,您必须再访Java堆和内存配置。培养整体堆一样高象您的RAM支持,大约1.3 gb 32个位操作系统的(Oss),或者在那之外64位Oss的。考虑内存的正确的设置每请求为了避免单个用户牺牲整个用户属性消耗所有服务器内存的情况。

如果您的查询必须合法地浪费大量的内存由于其性质,则考虑新增内容{选项FORCE_DISK}到查询挑选语句为了防止内存耗尽和保护其他请求内存耗尽。这当时不仅有益于其他用户请求,但是实际上提高密集查询的性能。这是因为立即溢出到磁盘,当处理和不做尝试对第一次使用内存,然后取消,当查找需要溢出到磁盘。



Document ID: 118032