Compartilhar via


Eventid 31212 : ProxyVmemAlloc3pSize registry value calculation

I have written this article for calculation for TMG, which is installed on a 64 bit windows 2008 server. For ISA server 2006, which runs on 32 bit windows 2003 server, these calculations are limited to a maximum size of 2GB i.e. 2048. For TMG maximum cannot be beyond 4GB.

Following is the description of how you can calculate ProxyVmemAlloc3pSize if you get following event id i.e. 31212

 

 Article: https://support.microsoft.com/?kbid=842438

 

Eventid

******************************************

Log Name: Application

Source: Microsoft Forefront TMG Web Proxy

Date: 12/01/2010 x:xx:xx PM

Event ID: 31212

Task Category: None

Level: Warning

Keywords: Classic

User: N/A

Computer: TMG.contoso.com

Description:

The Forefront TMG Web Proxy memory pool that handles HTTP connections is low. To specify a larger Web Proxy memory pool, set the ProxyVmemAlloc3pSize registry value in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3Proxy\Parameters registry key. For more information about setting this value see the Forefront TMG help.

Event Xml:

<Event xmlns="https://schemas.microsoft.com/win/2004/08/events/event">

  <System>

    <Provider Name="Microsoft Forefront TMG Web Proxy" />

    <EventID Qualifiers="32768">31212</EventID>

    <Level>3</Level>

    <Task>0</Task>

    <Keywords>0x80000000000000</Keywords>

    <TimeCreated SystemTime="2010-01-12T31:12:55.000000000Z" />

    <EventRecordID>15938</EventRecordID>

    <Channel>Application</Channel>

    <Computer>TMG.contoso.com</Computer>

    <Security />

  </System>

  <EventData>

    <Data>HTTP</Data>

    <Data>ProxyVmemAlloc3pSize</Data>

    <Binary>003000</Binary>

  </EventData>

</Event>

***********************************************************************

Here data i.e. 003000 is mentioned as the blocksize

 

Let me explain how this value is deducted (reverse engineering J)

 

003000 = 0x3000= [0x3000 hexa] == [12288 Decimal] == ['ProxyVmemAlloc3pSize' * 3p] == [1024 * 3(4kb)]

 

Now let’s further dig this following equation

 

['ProxyVmemAlloc3pSize' * 3p] == (1024 * 3(4kb)]

 

3p above-> 3(pages of memory) so 3p=3pages of memory

 

1 page= 4kb

So 3p=3(4kb)=12kb

 

Therefore

 

['ProxyVmemAlloc3pSize' * 3p]=1024*12kb= 12288 in decimal which is 0x3000

 

Therefore ProxyVmemAlloc3pSize =1024 a default configured in the registry

 

So above alert/event tells that default 1024 is being used for ProxyVmemAlloc3pSize and is suggesting to increase this value

 

in my test scenario active web sessions at peak hours were

 

Active web sessions (maximum)= 4215

 

Then as per the formula Blocksize =4*4215+10240=27100

Then registry value for ProxyVmemAlloc3pSize=blocksize/10=2710

 

Since default is 1024, its double is 2048 and triple is 3072

 

Above deducted value falls between 2048 and 3072 so we can use 3072.

Comments

  • Anonymous
    January 01, 2003
    yes Saurav, apologize for delayed response, you can email me ,if u have queries.

  • Anonymous
    February 01, 2013
    as per support.microsoft.com ProxyVmemAlloc3pSize - This entry controls the maximum number of proxy request objects. ProxyVmemAlloc1pSize - This entry controls the maximum number of Secure Sockets Layer (SSL) request objects. This number is calculated as i primarily have https traffic , so do you think i need to add this registry ProxyVmemAlloc1pSize

  • Anonymous
    December 11, 2014
    So just to be clear if I create a dword entry called ProxyVmemAlloc1pSize I just set it to decimal 2048 and reboot. Is that correct?