AWE Enable - Problems :((

  • Has anyone noticed timeout problems after enabling AWE options in SQL Server. Couple of my developers are complaining about timeout problems after I have made this memory change. They are trying to update 700 records in a batch and they are getting timedout.

    Others are not having this problem. Do I need to manually increase the data or procedure cache to stop this from happening ?  Am I missing something ? Do I have to set something after enabling the AWE option ?

    Please let me know....

    Thanks.

    Here is my previous pst :

    We have Windows 2003 Advanced Server and MS SQL Server 2000 SP3a. My Boot.ini says "/3GB /PAE" and on SQL server I have "AWE Enable" to 1.

    I have 7GB of RAM available on that box with 4 instances. Here is how I am trying to set max server memory limit  per instance:

    Server/Inst1    -   2.5G

    Server/Inst2    -  1.5G

    Server/Inst3   - 1 GB

    Server/Inst4   - 1 GB

    I know when we enable AWE option sql server will not be able to dynamically allocate memory . Hence I am trying to set max server memory limit so that everybody can live happily.

  • Check your sql error logs. Do they say AWE enabled? I had the same problem and found that you have to set the max server memory to a minimum of 3 GB in order for AWE to work.

  • No I dont see the AWE enabled message in my SQL error log.

    Now I have increased the max server memory to 3001 MB. I guess I will have to reboot.

    Will the other instances which are not having 3GB or more memory have itmeout problems ?

    Thanks.

  • If you are planning to use more than 4 GB of memory, you cannot add up all the memories assigned to various instances and sum up to the total amount of memory. SQL Server is still not using all the memory. The memory has two main partitions user mode and kernel mode which is split into 2 GB each. With the /3 GB, you split it to 3 and 1 for user mode and kernel mode respectively. Now, the user mode is virtual memory and when you do multiple installationof SQL Server, it shares the same physical memory. So with your current settings, you are not at all using any awe memory although you have it turned on. Check  the article below for more explaination

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsqldev/html/sqldev_01262004.asp

    The memory in access of the 4 GB does not get swapped and is dedicated. Hence, you can assign the memory as below.

    inst1 =  3 gb + a

    inst2 = 3gb + b

    inst3 = 1 gb

    inst4 = 1 gb

    You can split  a and b as under in any combination

    a + b = (7-4.5)

     

  • Thanks sa24.

    According to your calculations can I make it :

    inst1 - 4gb

    inst2 - 4gb

    inst3 - 1gb

    inst4 - 1gB

    right ?

    Also why ( 7 - 4.5&nbsp ?

    Thanks for your help.

  • Hey Bidec. Have you reconfigured your instances yet? If you did, how did you configure them? I'm going to have to do the same thing on mine so I would love to know how you did yours and how it worked out.

    Thanks,

    Noel

  • Its actually 7-4.0. The 4.0 gig is the combination of kernel mode + usermode. The additional memory would be available as physical extensions to the existing memory. Note that this memory does not get paged out and is static. the reason i have .5 additional is that i did run into an issue where our cluster failed over when we allocated all the posible memory. i'm not sure why and that's why i have additional .5gb over there.

     

  • The below should work perfectly fine.

    inst1 - 4gb

    inst2 - 4gb

    inst3 - 1gb

    inst4 - 1gB

     Let us know what kind of behavior you see after re-allocating the memory.

  • Hi Addict. Would you be so kind as to elaborate on why this is a good configuration. It does not make sense to me because the total of the maximums is greater than the available RAM in the system. I was under the impression that with 7 GB and one allocated to kernel mode you would have to share the remaining 6 with the 4 instances. Further in order to take advantage of AWE an instance must have a max server mem of 3 GB or greater. So to me it seems that only one instance could use AWE.

  • I  think you did answer your question. you do agree that to take advantage of AWE, you should have a max server memory of 3 GB or greater. right !. now, the additional memory available with AWE is not shared with other applications. this memory is also not paged out. the memory less that 3 gb goes from user mode and is shared by different applications. Each install of SQL server is its own application. below is a detailed explaination

    inst1 : 3 gb(shared memory)  + 1 GB of dedicated memory

    inst2 : 3 gb(shared memory) + 1 GB of dedicated memory

    inst3 : 1 gb (shared memory)

    inst4 : 1 gb (shared memory)

    You still have 1 gig extra and you can probably assign about a half to one of inst1 or inst2. you don't want all your resources to compete for your shared memory and hence the instance which you don't use often, you don't want to assign more memory and that's why you are assigning 1 gig each to inst3 and inst4. For an optimal configuration, i would be against the additional instances if it is a production box.

     

  • Hi Sa24...

    Or I did not understand or read the articles I came across very well, or you make a mistake here. I am not convinced wich one of us is wrong here... But I hope you can help me out.

    Can you provide several links on the Internet, if possible Microsoft.com, where it is stated as you say?

    Please convince I am wrong, and make me look humble

  • Excellent article. But I can not understand in your calculations in this thread, that the 3Gb is shared between all instances. As I understand, and I really think this is right, is that every instance gets a private virtual 3Gb address space. That is because every proces in Windows gets appointed 4Gb, from which normally the kernel gets 2Gb and the process gets 2Gb, but because of the /3Gb switch it is devided like 1Gb to 3Gb.

    So if this above is true, then I do not undestand your calculations where you make a translation from the private virtual 3Gb for the processes to the amount of phisycal memory in the machine. I still think you make an error there. This is not said in the article you mentioned either.

  • hi nos.

    Thanks for the correction. Your understanding is correct for each instance get a private virtual 3 GB space. But it gets tricky if you want to use memory more than 3 gb. If you enable awe, the additional memory would be fixed and cannot be shared. the private virtual address space can still be shared.

  • Hi All,

    Thanks for great response. Seems like everything has started falling in place now.

    I have allocated 4 GB to first 2 instances and 1 GB each to the remaining 2 instances. Everything seems ok now. No body has complained about timeouts yet. Although when I talked to MS consultant he asked me to make sure that the MFU(most frequently used) tables have updated stats.

    Looks like this configuration is working for me.

    Thanks again to all for your help.

    Check the memory used.. It has 7GB of RAM.

Viewing 15 posts - 1 through 15 (of 16 total)

You must be logged in to reply to this topic. Login to reply