Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird 1.5 - CpuAffinityMask - Welcher Wert? (https://www.delphipraxis.net/136014-firebird-1-5-cpuaffinitymask-welcher-wert.html)

Eppos 22. Jun 2009 09:13

Datenbank: Firebird • Version: 1.5 • Zugriff über: BDE

Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Hallo zusammen,

ich stehe momentan auf dem Schlauch. Habe Firebird auf einem Server installiert (Processor Intel Xeon).
Im Task-Manager stehen 8 getrennte Fenster für die CPU. Wie muss der Wert nun in der CpuAffinityMask lauten,
damit der Firebird Server ohne Probleme läuft?
Bei mir lokal dauert das Starten des Programms 1 sec. und auf dem Server ungefährt 5 sec..
Ich habe die SuperServer Variante bei der Installation gewählt.

Vielen Dank!

Eppos

mkinzler 22. Jun 2009 09:22

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
CpuAffinityMask = 1 bedeutet 1. CPU

Dazu gibt es auch einen Abschnitt in den Release Notes.

BTW. In diesem Fall könnte man auch über de Einsatz der Classic nachdenken

Eppos 22. Jun 2009 09:32

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Ich habe folgenden Wert errechent, ich weiss aber nicht ob dieser so in Ordnung ist?!?: 65

mkinzler 22. Jun 2009 09:33

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Was willst du erreichen?

Eppos 22. Jun 2009 09:41

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Das alle 8 CPUs benutzt werden...

mkinzler 22. Jun 2009 10:12

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Gleichzeitig geht mit der SuperServer nicht ( -> Classic) sonst Maske einfach leer lassen, dann verwendet er alle ( wechselnd; nicht zu empfehlen)

hoika 22. Jun 2009 10:48

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Hallo,

Superserver kann schon mehrere CPU's.
Aber dann kommt es wieder genau zu dem Problem wie bei Interbase damals,
der Superserver-Prozess springt ständig zwischen den CPU's rum.

Springen tut er natürlich nicht selber,
sondern das macht der Windows-Scheduler.

Hänge beim Superserver den Prozess an die 1. CPU (standard),
und das reicht.

Ansonsten musst du halt den Classic nehmen.

Dort musst du aber auf den DB-Cache achten
(pro Connection vergeben).


Heiko

mkinzler 22. Jun 2009 11:01

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Zitat:

Hänge beim Superserver den Prozess an die 1. CPU (standard),
und das reicht.
Da dieser von vielen Prozessen bevorzugt wird, würde ich einen anderen nehmen

hoika 22. Jun 2009 11:03

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Hallo,

Zitat:

Da dieser von vielen Prozessen bevorzugt wird, würde ich einen anderen nehmen
hm ??
Seit wann denn das ?

Klar, kann ein Prozess sich selbst an einen Prozessor binden,
aber macht das wirklich jemand ?
Wenn nicht, teilt der Scheduler das doch schön brav auf ...


PS:
Ursprünglich wollte ich schreiben, nimm den 2. Prozessor,
hatte es mir dann aber doch noch überlegt.

Zitat:

Bei mir lokal dauert das Starten des Programms 1 sec. und auf dem Server ungefährt 5 sec..
Das man eine DB-Programm immer mit einem DB-Server auf einem externen Rechner
entwickeln und testen sollte, weisst du ja jetzt ... ;)
Oft hört man sonst "Bei mir läuft das Programms schnell, beim Kunden total langsam"
Zur Not könnte man eine virtuelle Maschine nehmen oder zumindestens
TCP/IP im Connection-String eintragen (statt c:\db\data.fdb dann localhost:c:\db\data.fdb)


Heiko

Eppos 30. Jun 2009 13:22

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Ich arbeite über den localhost.

Die Frage ist nur, was ich einstellen muss wenn ich den SuperServer verwende.
Ist dann bei 8 kernen (8 Prozessoren werden mir Taskmanager angezeigt) die Zahl 85 korrekt?

Danke.
Eppos

hoika 30. Jun 2009 16:00

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Hallo,

beim Superserver sollte nur ein Prozessor verwendet werden.
Die Zahl ist binär zu verstehen

00000001 CPU1 also 1
00000010 CPU2 also 2
00000011 CPU1+2 also 3

10000000 CPU8 also 128



Heiko

Eppos 30. Jun 2009 16:32

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Also 128 versteht sich so, das der 8 CPU verwendet wird und bei allen 8 der Wert 255 ist oder?

mkinzler 30. Jun 2009 17:25

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Der SuperServer verwendet nur einen Prozessor (Kern). Gibt man keine Maske an, kann der Prozessor/Kern vom Betriebsystem gewechselt werden. Aber immer nur ein Prozessor/Kern gleichzeitig!

hoika 30. Jun 2009 17:47

Re: Firebird 1.5 - CpuAffinityMask - Welcher Wert?
 
Hallo,

Eppos, korrekt.
Einfach als Bitmaske betrachten.

Aber:
siehe mkinzler

Das einzige, was man beim Superserver machen kann,
ist ihn auf eine andere als CPU1 zu setzen.
Alles andere bringt nichts.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz