Is this simply a case of "not enough cache memory" for dbsrv11.exe?

Scenario: 100 database started in one engine, then 10 connections attempted for each database.

I. 09/14 11:20:32. SQL Anywhere Network Server Version 11.0.1.2276 I. 09/14 11:20:32. Workgroup edition
...
I. 09/14 11:20:32. Database "ddd001" (ddd001.db) started at Tue Sep 14 2010 11:20
...
I. 09/14 11:22:24. Database "ddd100" (ddd100.db) started at Tue Sep 14 2010 11:22
I. 09/14 11:22:44. Cache size adjusted to 235580K
I. 09/14 11:22:49. Cache size adjusted to 249980K
...
I. 09/14 12:54:26. Allocating a communication buffer failed
I. 09/14 12:54:26. Allocating a communication buffer failed
... [many similar messages]
I. 09/14 12:54:29. Allocating a communication buffer failed
I. 09/14 12:54:29. Allocating a communication buffer failed
I. 09/14 12:54:29. Connection terminated abnormally
I. 09/14 12:54:29. Disconnected SharedMemory client's AppInfo: IP=192.168.1.104;HOST=BCARTER-PC;OSUSER=bcarter;OS='Windows Vista Build 6001 Service Pack 1';EXE=C:\Breck\benchmark\rrloadtest.exe;PID=0x1f4c;THREAD=0x1de8;VERSION=11.0.1.2276;API=ODBC;TIMEZONEADJUSTMENT=-240
I. 09/14 12:54:29. Allocating a communication buffer failed
I. 09/14 12:54:29. Connection terminated abnormally
I. 09/14 12:54:29. Disconnected SharedMemory client's AppInfo: IP=192.168.1.104;HOST=BCARTER-PC;OSUSER=bcarter;OS='Windows Vista Build 6001 Service Pack 1';EXE=C:\Breck\benchmark\rrloadtest.exe;PID=0x1f4c;THREAD=0x778;VERSION=11.0.1.2276;API=ODBC;TIMEZONEADJUSTMENT=-240
I. 09/14 12:54:29. Allocating a communication buffer failed
I. 09/14 12:54:29. Connection terminated abnormally
... [and so on]

asked 14 Sep '10, 17:07

Breck%20Carter's gravatar image

Breck Carter
27.3k424585836
accept rate: 21%


No, the communication buffers don't come out of the cache. This is a case of the server process running out of memory - either creating a buffer using malloc failed or creating a piece of shared memory failed.

A thousand connections to a single server isn't all that crazy, though 100 databases on a single server is quite a lot. If you try a 64-bit server on a machine with lots of RAM, I suspect you are less likely to see this problem.

permanent link

answered 14 Sep '10, 17:34

Graeme%20Perrow's gravatar image

Graeme Perrow
8.5k371108
accept rate: 51%

4GB RAM, less than half used, and 64-bit Vista Ultimate. Removing the -c and -gn parameters made the problem go away... probably removing the -gn did the trick, I had stupidly set a large value -gn 120.

(14 Sep '10, 18:25) Breck Carter
3

It's not memory that is the limitation here but address space. On 64-bit Windows a 32-bit process has 4GB of address space. What was the max cache size (-ch whether explicit or by default)? It's displayed at startup and that comes out of your address space. The default in your configuration should be about 3.6GB. -gn 120 accounts for another 120MB (by default) of address space for thread stacks. Take out the executable, DLLs & some other allocations outside of the cache and the server is really tight for address space.

Use the 64-bit server and never worry about address space again :)

(15 Sep '10, 01:28) John Smirnios
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×85

question asked: 14 Sep '10, 17:07

question was seen: 1,167 times

last updated: 14 Sep '10, 17:34