Subject Re: [firebird-support] Re: Queries done through ISQL must faster than in production
Author Helen Borrie
At 08:32 AM 7/02/2010, peterson77 wrote:
>I am guessing this has something to do with memory usage, but I am not sure how to isolate the problem. The DefaultDbCachePages is not set in firebird.conf, so my understanding that each fb_inet_server process should take up around (75 pages x 4k page size = 300k)

That's just for the page cache. Each fb_inet_server also occupies its own size in memory and that doesn't take in lock table, et al. in shared memory. And that's before you start doing stuff. Each process will be acquiring whatever memory it needs for processing requests, buffers, sorts, etc.

> But when I look at a "top" display, each of the fb_inet_server processes has 32,000 of VIRT memory, 28m of RES memory. Furthermore, when I run isql, its child fb_inet_server

In Classic, there are no child processes. Each connection is self-governing process started under the xinetd daemon.

>process entry in top shows it having 49,000 of VIRT memory and 42m of RES memory. So the connection through ISQL is getting more memory than the connections in the application. This may explain the perfomance difference, but I don't understand why they would not both be the default -- or am I reading this wrong?

See above. Each process acquires the memory it needs to process requests.

>The version of Firebird is 2.1.2. The application environment is Java under Tomcat w/Jaybird 2.1.6 JDBC driver. The server has 6Gig of memory with dual processors. Both ISQL and the Jaybird connections are done through localhost. The database size is about 23gig, page size is 4k.

Isql is an embedded application, i.e., a C application that bypasses the API and makes the equivalent calls directly to the processing layers beneath the API. Jaybird is a native implementation of the API, with several layers of its own (not even considering Tomcat!) It's clearly not apples vs apples and the differences dwell in your application layers.

I think if you are going to get any useful assistance, you need to post your question in the firebird-java list. There, you will have a much better chance of getting an explanation of why/how Jaybird is apportioning resources. Don't forget to provide versions of everything and say what platform the apps are running on.

^ heLen ^