开发者

Firebird Architecture

开发者 https://www.devze.com 2022-12-14 13:36 出处:网络
How can I tell which architecture is installed/configured/running on an existing installation of Firebird RDBMS server (ie. Classic Server or Super-Server)?
  1. How can I tell which architecture is installed/configured/running on an existing installation of Firebird RDBMS server (ie. Classic Server or Super-Server)?

  2. How can I switch between the two modes?

  3. Which versions (1.5, 2.0, 2.1) and architectures (CS or SS) of Firebird can be used on multi-processor servers? and how to configure them properly for multi-processor sever an开发者_开发技巧d multi-threaded application?


1 -- To tell which architecture is running open Task Manager and look at running processes. fb_inet_server.exe stands for classic architecture, and fbserver.exe -- super server.

2 -- Close all client connections. Got to Firebird\Bin directory. Execute specified sequence of commands:

instsvc stop
instsvc remove

then either:

instsvc install -s -a   -- for Super Server

or

instsvc install -c -a   -- for Classic

after that:

instsvc start

3 -- Super Server always runs on single processor or core and can not scale. Use Classic architecture in SMP environment. In latter case dont specify page buffers more than 800-1000.

Be aware that performance of Classic Server depends on performance of disk subsystem. For big databases use RAID controllers with internal cache memory, battery and "write back" mode enabled.


You should use the superserver in nearly every case. Although the superserver runs on "only" one CPU core, it's mostly faster. The reason for this is the DB server load. It's not rendering videos or calculating wheater information. It has an extreme high IO load. That means it reads and writes data from the memory and drives. The classic and superclassic server creates cache for every connection. That means that 10 different connections (for instance 10 client computers) will have their own cache. Let's say they are working with the same data (customers, oders...). The problem is that each connection does not have the relevant information in the cache. So every connection will load these records from the hard drive. This behavior causes an extrem high drive load and slows down everything. The superserver (version < FB 3.0) is just using one CPU core, but has one cache. So user 2,3..10 doesn't have to load the data from the drive because user 1 already loaded it into the server cache. Taking all pieces together the superserver is faster. And I'm looking forward to installing the firebird 3.0 release because the firebird 3.0 superserver uses multiple CPUs and has one "shared" server cache.

0

精彩评论

暂无评论...
验证码 换一张
取 消