语音和统一通信 : Cisco Unified Communications Manager (CallManager)

CallManager服务器:使用PsList进行内存泄漏问题故障排除

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


目录


简介

本文描述如何使用Pslist工具为了调试在Cisco CallManager服务器的一内存泄漏问题。Windows操作系统支持管理员使用查看关于进程CPU和内存使用的详细信息的性能监控程序工具。然而,它不捕获开始的进程的存储器利用率,在性能监控程序工具启动后。Pslist服务填补此空白。

注意: Pslist是免费工具程序。您能从Sysinternals下载它leavingcisco.com

先决条件

要求

Cisco 建议您了解以下主题:

  • Windows操作系统

  • Cisco CallManager

  • Windows性能监控程序

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • Cisco CallManager

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

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

背景

Pslist默认行为是显示在本地系统当前运行的所有进程的将数据。为每进程列出的信息在内核和用户模式包括进程执行的时间,时间进程执行和OS分配进程的相当数量物理存储器。命令行交换机允许您查看内存导向进程信息、线索统计信息,或者数据的全部三种类型。

使用情况

这是工具的格式:

pslist [-?] [-d] [-m] [-x][-t][-s [n] [-r n]][\\computer [-u username] [-p password]] [name | pid]

此列表提供每个参数详细说明:

  • - ?—显示用于输出值和测量单位的支持的选项。

  • - d —此交换机有所有活动线索的Pslist show statistics在系统,并且分组与他们自己的进程的线索。

  • - m —此交换机安排Pslist显示每进程的将数据,而不是将数据默认。

  • - x —使用此交换机, Pslist显示CPU、内存和线索信息指定的其中每一的进程。

  • - t —显示进程树。

  • - s [n] —在模式造成Pslist运行类似于任务管理器更新模式。按ESC键或者指定运行秒钟的数量并且中止此模式。

  • - r n —任务管理器模式刷新率以秒钟(默认是1)。

  • 名称—而不是列出在系统的所有运行进程,此参数缩小Pslist的扫描对开始与命名进程的那些进程。例如, pslist exp显示从“exp”开始的所有进程的统计信息。这包括Explorer。

  • - u —此参数代表用户名。如果要结束在远程系统的一进程,并且您执行的帐户没有在远程系统的管理权限,则您必须登陆作为使用此line命令选项的管理员。如果不包括与的密码- p选项,则Pslist提示您输入密码,无需响应您的输入对显示。

  • - p —此参数代表密码。此选项让您指定在line命令的登录密码,以便您能使用Pslist从批处理文件。如果指定帐户名并且省略- p选项, Pslist交互式地提示您输入密码。

  • \ \计算机而不是显示本地系统的进程信息, Pslist显示指定的NT Windows 2000系统的信息。如果您的安全凭证不允许您从远程系统,得到性能计数器信息请包括- u交换机以用户名和密码登陆到远程系统。

  • pid —而不是列出在系统的所有运行进程,此参数缩小Pslist的扫描对有特定的程序ID的进程(PID)。例如, pslist 53转存进程的统计信息与PID 53。

在Cisco CallManager服务器的设置Pslist

完成这些步骤设置在Cisco CallManager服务器的Pslist :

  1. 创建批处理文件(memory.bat)有Notepad或一相似的应用程序的。批处理文件的内容包含:

    echo %date% %time% >>c:\cron\mem.txt
    c:\dnld\pslist.exe -m >>c:\cron\mem.tx
  2. 启用在Cisco CallManager服务器的任务安排器服务。

    1. 选择Start > Programs > Administrative Tools > Services

    2. 用鼠标右键单击任务安排器(请参阅箭头A在表1)

    3. 点击开始(请参阅箭头B)从弹出式方框。

      图 1:服务

      pslist-1.gif

  3. 安排您的批处理文件周期地运行。

    思科推荐间隔10分钟。您能调节此间隔受问题需要支配。只需要一些秒钟运行并且不增加负载。

    1. 点击开始,指向设置,并且点击控制面板

    2. 双击Scheduled Tasks

    3. 单击 Next

    4. 单击浏览

    5. 导航选择程序安排。

      在这种情况下,目录是cron (请参阅在图2)和程序的箭头A是mem.txt (请参阅箭头B在表2)

      图 2:选择程序安排

      pslist-2.gif

    6. 单击 Open(打开)。

      注意: 如果使用已计划任务向导,请检查开放高级属性此任务,当我点击芬通社然后单击芬通社继续时。

    7. 键入一名称对于此任务。

    8. 点击日报

    9. 单击 Next

    10. 选择您想要此任务开始的时间和天。

    11. 单击 Next

    12. 输入用户的名称和密码。任务运行,好象由用户开始。

    13. 单击 Next

    14. 当我点击芬通社然后单击芬通社继续时,请检查开放高级属性此任务

    15. 单击Schedule。

    16. 单击 Advanced

    17. 检查重复任务然后指定您想要任务重复分钟或几小时的数量。

    18. 单击确定两次。

  4. 等待使用情况增长。

  5. 采集日志。对于其中每一Pslist运行,这是输出:

    Process memory detail for EVOICE-R16-CM1:
    
    Name                Pid      VM      WS    Priv Priv Pk   Faults   NonP Page
    Idle                  0       0      16       0       0        1      0    0
    System                8    1676     224      24     164   562211      0    0
    SMSS                204    5256     376    1076    2760      886      1    6
    CSRSS               232   30880    2604    1556    1592     2333      7   61
    WINLOGON            256   35580    1296    7084    8800    16883     66   35
    SERVICES            284  127396   89808    4032    6636  6713985    622  122
    ..
    ..
    
    13:15:29.35 

    注意: 当您完成时,请禁用安排的作业。否则,日志填装磁盘。

  6. 请使用pslistmem.pl脚本解析日志和加在前面实例编号到每条线路。

    #!/usr/bin/perl
     $inst=0; #init var to count number of instances
    $tinfo=""; #init var to store date/time info
    while($_ = <STDIN>){
     #if this line contains a timestamp like 11:11:11.11
     if (/(\d+:\d+:\d+.\d+)/){ 
      $inst++;     #increment the instance counter
      $tinfo=$_;   #save time/date to append to all rows of this instance
      next; # skip to next line of input
     }
     #if this line contains a word followed by at least 8 numbers
     if (/((\w)(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+(\s)+(\d)+)/){
      tr/\r\n//d; #strip CR LF to keep the date/time on the same line
      print "$inst\t$_\t$tinfo"; # print instance counter, input line, 
       then date/time for this instance
      next; # skip to next line of input
     }

    脚本加在前面第1到在ouput第一组的所有线路从Pslist的。它加在前面第2对第二集等等(请参阅箭头A、B和C在表2)。它也剥离报头行。这在暂时的命令允许您由PID排序和使用第一列保留线路。

    注意: 为了运行此Perl脚本,您需要下载Perl解释器例如从www.activestate.com的ActivePerlleavingcisco.com

  7. 调用pslistmam.pl脚本,此输出显示:

    cat mem.txt | pslistmem.pl | sort -k 3 >out.txt

    Mem.txt和out.txt代表输入和输出文件分别pslistmem.pl的。它由进程名排序输出。在输出文件中(请参阅Figure3),列1是被加在前面的集合编号,列2是进程名,列3是进程ID,列4是虚拟内存,列5是工作区(WS),列6是私有字节数,并且列7是私有字节数高峰。如果观看VM、WS和私有字节数趋势,他们提交您与内存消耗量一一般趋势由一特定进程。

    图 3:Pslistmem.pl脚本的输出

    /image/gif/paws/66967/pslist-3.gif


相关信息


Document ID: 66967