home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / WindowsServerTrial / server.iso / sources / install.wim / 5 / Windows / PLA / Rules / Rules.System.Memory.xml < prev    next >
Extensible Markup Language  |  2006-09-18  |  13KB  |  212 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?Copyright (c) Microsoft Corporation. All rights reserved.?>
  3. <Rules>
  4.   <Group name="$(GroupMemory)">
  5.     <Rule name="$(RuleMemoryTable)">
  6.       <Step select="/Report/Section[@name='tracerptMemory']" fatal="true">
  7.         <Exists>
  8.           <Otherwise>
  9.             <Insert select=".">
  10.               <Node>
  11.                 <Table name="TableWorkingSet" topic="process" key="500">
  12.                   <Summary key="500" find="top" field="private" topic="memory">
  13.                     <Data name="process" label="topMemoryInstance"/>
  14.                     <Data name="private" units="KB" label="topPrivate" format="#,##0"/>
  15.                   </Summary>
  16.                   <Header>
  17.                     <Threshold type="top" field="count" value="10"/>
  18.                     <Sort field="private" type="number" order="descending"/>
  19.                     <Data name="process" class="string"/>
  20.                     <Data name="pid" class="string"/>
  21.                     <Data name="memoryVirtual" units="KB" class="number" format="#,##0"/>
  22.                     <Data name="memoryWorkingSet" units="KB" class="number" format="#,##0"/>
  23.                     <Data name="shareable" units="KB" class="number" format="#,##0"/>
  24.                     <Data name="private" units="KB" class="number" format="#,##0"/>
  25.                   </Header>
  26.                 </Table>
  27.               </Node>
  28.             </Insert>
  29.           </Otherwise>
  30.         </Exists>
  31.       </Step>
  32.       <Step select="/Report/Section/Table[@name='memoryPidMap']/Item[not(Data[@name='instance'] = '_Total')]" sortType="all">
  33.         <Exists>
  34.           <Otherwise>
  35.             <Variable name="instance" expression="Data[@name='instance']"/>
  36.             <Insert select="/Report/Section[@name='tracerptMemory']/Table[@name='TableWorkingSet']">
  37.               <Node document="{_document}" select="/Report/Section/Table[@name='memoryPidMap']/Item[Data[@name='instance'] = '{instance}']"/>
  38.             </Insert>
  39.           </Otherwise>
  40.         </Exists>
  41.       </Step>
  42.       <Step select="/Report/Section/Table[@name='memoryVirtual']/Item[not(Data[@name='instance'] = '_Total')]" sortType="all">
  43.         <Exists>
  44.           <Otherwise>
  45.             <Variable name="instance" expression="Data[@name='instance']"/>
  46.             <Insert select="/Report/Section[@name='tracerptMemory']/Table[@name='TableWorkingSet']/Item[Data[@name='instance'] = '{instance}']">
  47.               <Node document="{_document}" select="/Report/Section/Table[@name='memoryVirtual']/Item[Data[@name='instance'] = '{instance}']/Data[@name='max']"/>
  48.             </Insert>
  49.           </Otherwise>
  50.         </Exists>
  51.       </Step>
  52.       <Step select="/Report/Section/Table[@name='memoryWorkingSet']/Item[not(Data[@name='instance'] = '_Total')]" sortType="all">
  53.         <Exists>
  54.           <Otherwise>
  55.             <Variable name="instance" expression="Data[@name='instance']"/>
  56.             <Insert select="/Report/Section[@name='tracerptMemory']/Table[@name='TableWorkingSet']/Item[Data[@name='instance'] = '{instance}']">
  57.               <Node document="{_document}" select="/Report/Section/Table[@name='memoryWorkingSet']/Item[Data[@name='instance'] = '{instance}']/Data[@name='max']"/>
  58.             </Insert>
  59.           </Otherwise>
  60.         </Exists>
  61.       </Step>
  62.       <Step select="/Report/Section/Table[@name='memoryWorkingSetPrivate']/Item[not(Data[@name='instance'] = '_Total')]" sortType="all">
  63.         <Exists>
  64.           <Otherwise>
  65.             <Variable name="instance" expression="Data[@name='instance']"/>
  66.             <Insert select="/Report/Section[@name='tracerptMemory']/Table[@name='TableWorkingSet']/Item[Data[@name='instance'] = '{instance}']">
  67.               <Node document="{_document}" select="/Report/Section/Table[@name='memoryWorkingSetPrivate']/Item[Data[@name='instance'] = '{instance}']/Data[@name='max']"/>
  68.             </Insert>
  69.           </Otherwise>
  70.         </Exists>
  71.       </Step>
  72.       <Step select="/Report/Section/Table[@name='TableWorkingSet']/Item" sortType="all">
  73.         <Exists>
  74.           <Otherwise>
  75.             <Variable name="pid" expression="Data[2]"/>
  76.             <Variable name="commit" expression="Data[3] div 1024"/>
  77.             <Variable name="workingSet" expression="Data[4] div 1024"/>
  78.             <Variable name="private" expression="Data[5] div 1024"/>
  79.             <Variable name="shared" expression="{workingSet} - {private}"/>
  80.             <Delete select="Data[@name='max']"/>
  81.             <Insert select=".">
  82.               <Node>
  83.                 <Data name="pid">{pid}</Data>
  84.                 <Data name="memoryVirtual">{commit}</Data>
  85.                 <Data name="memoryWorkingSet">{workingSet}</Data>
  86.                 <Data name="shareable">{shared}</Data>
  87.                 <Data name="private">{private}</Data>
  88.               </Node>
  89.             </Insert>
  90.             <Insert select="Data[@name='instance']">
  91.               <Attribute name="name" value="process"/>
  92.             </Insert>
  93.           </Otherwise>
  94.         </Exists>
  95.       </Step>
  96.       <Step select="/Report/Section/Table[@name='memoryWorkingSet']">
  97.         <Exists>
  98.           <Otherwise>
  99.             <Delete select="."/>
  100.           </Otherwise>
  101.         </Exists>
  102.       </Step>
  103.       <Step select="/Report/Section/Table[@name='memoryWorkingSetPrivate']">
  104.         <Exists>
  105.           <Otherwise>
  106.             <Delete select="."/>
  107.           </Otherwise>
  108.         </Exists>
  109.       </Step>
  110.       <Step select="/Report/Section/Table[@name='memoryVirtual']">
  111.         <Exists>
  112.           <Otherwise>
  113.             <Delete select="."/>
  114.           </Otherwise>
  115.         </Exists>
  116.       </Step>
  117.     </Rule>
  118.     <Rule name="$(RuleReduceHandleTable)" enabled="true">
  119.       <Step select="/Report/Section/Table[@name='handleCount']" fatal="true">
  120.         <Exists>
  121.           <Otherwise>
  122.             <Insert select="Header/Sort">
  123.               <Node axis="preceding-sibling">
  124.                 <Threshold type="top" field="count" value="10"/>
  125.                 <Sort field="mean" type="number" order="descending"/>
  126.               </Node>
  127.             </Insert>
  128.           </Otherwise>
  129.         </Exists>
  130.       </Step>
  131.     </Rule>
  132.     <Rule name="$(RuleFreeSystemPTE)" enabled="true">
  133.       <Step select="/Report/Section[@name='tracerptMemory']/Table[@name='memory']/Item[Data[@name='counter']='Free System Page Table Entries']" fatal="true">
  134.         <Variable name="freesyspte" expression="Data[@name='mean']"/>
  135.         <Exists>
  136.           <When expression="({freesyspte} < 5000) or ({freesyspte} < 10000 and {freesyspte} >= 5000)">
  137.             <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  138.             <Variable name="RuleFreeSystemPTE_symptom">$(WarnFreeSystemPTE_symptom)</Variable>
  139.             <Variable name="RuleFreeSystemPTE_cause">$(WarnFreeSystemPTE_cause)</Variable>
  140.             <Variable name="RuleFreeSystemPTE_details">$(WarnFreeSystemPTE_details)</Variable>
  141.             <Variable name="RuleFreeSystemPTE_res1">$(WarnFreeSystemPTE_res1)</Variable>
  142.             <Variable name="RuleFreeSystemPTE_res2">$(WarnFreeSystemPTE_res2)</Variable>
  143.             <Variable name="RuleFreeSystemPTE_related1">$(WarnFreeSystemPTE_related1)</Variable>
  144.             <Warning tag="RuleFreeSystemPTE_{internalruleindex}" select="Data[@name='mean']" table="/Report/Section[@name='advice']/Table[@name='warning']">
  145.               <Item>
  146.                 <Data name="symptom" img="warning" link="RuleFreeSystemPTE_{internalruleindex}" message="RuleFreeSystemPTE_{internalruleindex}" translate="value">{RuleFreeSystemPTE_symptom}</Data>
  147.                 <Data name="cause" message="RuleFreeSystemPTE_{internalruleindex}">{RuleFreeSystemPTE_cause}</Data>
  148.                 <Data name="details" message="RuleFreeSystemPTE_{internalruleindex}">{RuleFreeSystemPTE_details}</Data>
  149.                 <Data name="resolution" message="RuleFreeSystemPTE_{internalruleindex}">{RuleFreeSystemPTE_res1}</Data>
  150.                 <Data name="resolution" message="RuleFreeSystemPTE_{internalruleindex}">{RuleFreeSystemPTE_res2}</Data>
  151.                 <Data name="related" url="http://go.microsoft.com/fwlink/?LinkID=70119" message="RuleFreeSystemPTE_{internalruleindex}">{RuleFreeSystemPTE_related1}</Data>
  152.               </Item>
  153.             </Warning>
  154.           </When>
  155.         </Exists>
  156.       </Step>
  157.     </Rule>
  158.     <Rule name="$(RuleCheckAvailMemory)" enabled="true">
  159.       <Step select="/Report/Section/Table[@name='memory']/Item[Data[@name='counter']='Available Bytes']">
  160.         <Variable name="avamem" expression="Data[@name='mean']"/>
  161.         <Variable name="availablemem" expression="{avamem} div 1048576"/>
  162.         <Variable name="prettyavailablemem" expression="round('{availablemem}')"/>
  163.         <Variable name="ratiomem" expression="{availablemem} div {physicalmem}"/>
  164.         <Variable name="mem" expression="format-number({ratiomem} * 100,'0')"/>
  165.         <Exists>
  166.           <Otherwise/>
  167.         </Exists>
  168.       </Step>
  169.       <Step select="/Report/Section[@name='tracerptDisk']/Table[@name='hotFile']/Item" sortType="all">
  170.         <Variable name="hotfilename" expression="Data[@name='file']"/>
  171.         <Exists>
  172.           <When expression="{mem} <= 20 and contains('{hotfilename}', 'pagefile')">
  173.             <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  174.             <Variable name="rulePaging_symptom">$(WarnPaging_symptom)</Variable>
  175.             <Variable name="rulePaging_cause">$(WarnPaging_cause)</Variable>
  176.             <Variable name="rulePaging_details">$(WarnPaging_details)</Variable>
  177.             <Variable name="rulePaging_res1">$(WarnPaging_res1)</Variable>
  178.             <Variable name="rulePaging_related1">$(WarnPaging_related1)</Variable>
  179.             <Warning tag="rulePaging_{internalruleindex}" select="/Report/Section[@name='tracerptDisk']/Table[@name='hotFile']" table="/Report/Section[@name='advice']/Table[@name='warning']">
  180.               <Item>
  181.                 <Data name="symptom" img="warning" link="rulePaging_{internalruleindex}" message="rulePaging_{internalruleindex}" translate="value">{rulePaging_symptom}</Data>
  182.                 <Data name="cause" message="rulePaging_{internalruleindex}">{rulePaging_cause}</Data>
  183.                 <Data name="details" message="rulePaging_{internalruleindex}">{rulePaging_details}</Data>
  184.                 <Data name="resolution" message="rulePaging_{internalruleindex}">{rulePaging_res1}</Data>
  185.                 <Data name="related" url="http://go.microsoft.com/fwlink/?LinkID=70118">{rulePaging_related1}</Data>
  186.               </Item>
  187.             </Warning>
  188.           </When>
  189.         </Exists>
  190.       </Step>
  191.     </Rule>
  192.   </Group>
  193.   <StringTable>
  194.     <String ID="GroupMemory">Memory</String>
  195.     <String ID="RuleCheckAvailMemory" loc.comment="Name of rule seen in WPDC">Check available memory</String>
  196.     <String ID="RuleMemoryTable">Memory Utilization Table</String>
  197.     <String ID="RuleReduceHandleTable">Adjust Handle Table</String>
  198.     <String ID="RuleFreeSystemPTE">Check on System Page Table Entries Free</String>
  199.     <String ID="WarnFreeSystemPTE_symptom" loc.comment="Symptom string for warning message: WarnFreeSystemPTE">Free System Page Table Entries (PTE) Performance counter average is low</String>
  200.     <String ID="WarnFreeSystemPTE_cause" loc.comment="Cause string for warning message: WarnFreeSystemPTE">Too many System PTE are in use.</String>
  201.     <String ID="WarnFreeSystemPTE_details" loc.comment="Details string for warning message: WarnFreeSystemPTE">There are {freesyspte} free entries.</String>
  202.     <String ID="WarnFreeSystemPTE_res1" loc.comment="Resolution string for warning message: WarnFreeSystemPTE">1. Verify the condition still exists.</String>
  203.     <String ID="WarnFreeSystemPTE_res2" loc.comment="Resolution string for warning message: WarnFreeSystemPTE">2. Close any unused applications.</String>
  204.     <String ID="WarnFreeSystemPTE_related1" loc.comment="First resolution detail string for warning message: WarnFreeSystemPTE">Virtual Memory</String>
  205.     <String ID="WarnPaging_symptom" loc.comment="Symptom string for warning message: WarnPaging">The system is experiencing excessive paging</String>
  206.     <String ID="WarnPaging_cause" loc.comment="Cause string for warning message: WarnPaging">Available memory on the system is low.</String>
  207.     <String ID="WarnPaging_details" loc.comment="Details string for warning message: WarnPaging">The total physical memory on the system is not capable of handling the load.</String>
  208.     <String ID="WarnPaging_res1" loc.comment="Resolution string for warning message: WarnPaging">Upgrade the physical memory or reduce system load</String>
  209.     <String ID="WarnPaging_related1">Memory Diagnosis</String>
  210.   </StringTable>
  211. </Rules>
  212.