PC mit 4 Prozessoren? Memory Error?

Hallo,

habe hier ein Supportproblem, bei dem Prozesse einer Software gelegentlich mit „Memory Error“ abschmieren. Da der Rechner neu und nicht zu schwach ist, kann es ja eigentlich nur eine Konfigurationssache sein.

Was mir aufgefallen ist: laut Windows Task Manager hat der Rechner 4 CPUs. Kann das sein? Ich bin nicht so der Hardware-Experte, ich kannte bis jetzt nur Dual Processor.

Vermutlich egal, hier jedenfalls mal ein paar Details zum Rechner:

OS: Windows 2000 Server, SP4
CPU 2,4 GH Intel Xeon
2 GB RAM

Weiteres kann ich auf Anfrage herausfinden.

Die verwendete Software kann mit Hilfe mehrerer Prozessoren mehrere Prozesse gleichzeitig laufen lassen (so sollte es zumindest sein). Leider stirbt aber ein Prozess schon, wenn 2 gleichzeitig laufen.

Ich habe den Verdacht, dass der Rechner eventuell zu „stark“ ist. Kann man die CPUs einzeln zum testen deaktivieren?

Gruß,

Myriam

vermute PC mit 2 Prozessoren

habe hier ein Supportproblem, bei dem Prozesse einer Software
gelegentlich mit „Memory Error“ abschmieren. Da der Rechner
neu und nicht zu schwach ist, kann es ja eigentlich nur eine
Konfigurationssache sein.

Könnte durchaus auch ein Hardwareproblem sein. Dass ein Rechner neu ist bedeutet ja nicht, dass er auch fehlerfrei sein muss.

Was mir aufgefallen ist: laut Windows Task Manager hat der
Rechner 4 CPUs. Kann das sein? Ich bin nicht so der
Hardware-Experte, ich kannte bis jetzt nur Dual Processor.

OS: Windows 2000 Server, SP4
CPU 2,4 GH Intel Xeon
2 GB RAM

Ich bin zwar nicht der Intel-Experte, aber ich vermute mal, es wird sich auch um ein Dual-Prozessor-System handeln, also ein Mainboard auf welchem 2 CPUs o.g. Typs verbaut sind. Dass du von Windows vier logische Prozessoren angezeigt bekommst, liegt an einem Feature namens „HyperThreading“, über das diese CPUs verfügen: http://de.wikipedia.org/wiki/Hyper-Threading

Die verwendete Software kann mit Hilfe mehrerer Prozessoren
mehrere Prozesse gleichzeitig laufen lassen (so sollte es
zumindest sein). Leider stirbt aber ein Prozess schon, wenn 2
gleichzeitig laufen.

S.o. - ich bin mir ziemlich sicher, es laufen nur 2 CPUs gleichzeitig.

Ich habe den Verdacht, dass der Rechner eventuell zu „stark“
ist.

Das möchte ich fast mal ausschließen. Diese Theorie klingt für mich sehr abenteuerlich.

Um den Fehler eingrenzen zu können, wäre es hilfreich, wenn du mal die exakte Fehlermeldung hier posten könntest und mal drauf achtest, ob diese vom ausgeführten Programm oder von Windows erzeugt wird.

LG, Jesse

Hallo und danke für die Hilfe!

Ich bin zwar nicht der Intel-Experte, aber ich vermute mal, es
wird sich auch um ein Dual-Prozessor-System handeln, also ein
Mainboard auf welchem 2 CPUs o.g. Typs verbaut sind. Dass du
von Windows vier logische Prozessoren angezeigt bekommst,
liegt an einem Feature namens „HyperThreading“, über das diese
CPUs verfügen: http://de.wikipedia.org/wiki/Hyper-Threading

Ah, das klingt logisch.

Ich habe den Verdacht, dass der Rechner eventuell zu „stark“
ist.

Das möchte ich fast mal ausschließen. Diese Theorie klingt für
mich sehr abenteuerlich.

Habe mich vermutlich falsch ausgedrückt. Ich könnte mir vorstellen, dass die verwendete Software nicht mit Dual Processor + Hyperthreading rechnet, und daher nicht erkennt, dass eigentlich genügend Ressourcen da sind. Das werde ich aber mal mit unserer R&D abklären.

Um den Fehler eingrenzen zu können, wäre es hilfreich, wenn du
mal die exakte Fehlermeldung hier posten könntest und mal
drauf achtest, ob diese vom ausgeführten Programm oder von
Windows erzeugt wird.

Die Meldung kommt vom ausgeführten Programm und lautet:

„Error opening xxx.db Insufficient memory for this operation“

Was irgendwie nicht sein kann, denn es sind ja 2GB RAM da, die auch funktionieren.

Es ist mir klar, dass hier niemand Support für die von unserer Firma hergestellte Software bieten kann. Meine konkrete Frage war, ob man diese „4 CPU“ Geschichte testweise mal abstellen kann.

Gruß,

Myriam

Hallo Myriam,

wer behauptet, dass die Software multiprozessorfähig ist? Deine Beschreibung hört sich ganz so an, als ob das eben nicht der Fall ist. In einem Multiprozessorsystem können Fehler auftreten, an die der Entwickler in seinen schlimmsten Alpträumen nicht gedacht hat und die mit einem einzelnen Prozessor auch nicht auftreten können.

Um das herauszukriegen, könnte man die Software fest an einen Prozessor binden, siehe hier:

open taskmanager and go to the processes tab

right click the app you want change, go to set affinity and deselect a processor (both are selected by default of course)

oder man startet das System überhaupt nur mit einem Prozessor ( /ONECPU in der Datei boot.ini). Liegt es wirklich an der Software, kann das nur der Entwickler beheben.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moien

Es ist mir klar, dass hier niemand Support für die von unserer
Firma hergestellte Software bieten kann. Meine konkrete Frage
war, ob man diese „4 CPU“ Geschichte testweise mal abstellen
kann.

Kann man meistens im BIOS machen. Nennt sich HT oder HyperT und ist bei besseren Boards abschaltbar.

(Es gibt übrigens PCs mit viel mehr als 2 CPUs. Ein 16 CPU-System kostet allerdings sehr, sehr viel mehr und bringt bei normalen Applicationen gar nichts)

Und versuch mal den Speicher auf 1 GB zu reduzieren. Es gibt da nämlich ein kleines Problem mit signed und unsigned int. Wenn der Programmierer nicht mit Systemen mit mehr als 2 GB RAM gerechent hat kann es zu Missverständnissen kommen. Das Programm glaubt dann - X MB RAM vor sich zu haben. Das hat aber nix mit der Anzahl der CPUs zu tun.

cu

wer behauptet, dass die Software multiprozessorfähig ist?
Deine Beschreibung hört sich ganz so an, als ob das eben nicht
der Fall ist.

Ich weiß sicher, dass die Software multiprozessorfähig ist. Ob auch Hyperthreading-fähig muss ich herausfinden.

Um das herauszukriegen, könnte man die Software fest an einen
Prozessor binden, siehe hier:

Das geht glaube ich nicht, da die Programme nicht dauernd laufen, sondern nur jede Stunde einmal.

oder man startet das System überhaupt nur mit einem Prozessor
( /ONECPU in der Datei boot.ini).

Das werde ich mal testen.

Gruß,

Myriam

Und versuch mal den Speicher auf 1 GB zu reduzieren. Es gibt
da nämlich ein kleines Problem mit signed und unsigned int.
Wenn der Programmierer nicht mit Systemen mit mehr als 2 GB
RAM gerechent hat kann es zu Missverständnissen kommen. Das
Programm glaubt dann - X MB RAM vor sich zu haben. Das
hat aber nix mit der Anzahl der CPUs zu tun.

Werde mal bei den anderen Installationen checken, ob wir schon etwas haben, was mit mehr als 1GB RAM läuft.

Gruß,

Myriam

Hallo Myriam,

Die Meldung kommt vom ausgeführten Programm und lautet:

„Error opening xxx.db Insufficient memory for this operation“

Was irgendwie nicht sein kann, denn es sind ja 2GB RAM da, die
auch funktionieren.

Es kann auch sein, dass der Programmierer nicht mit mehr als 2 gleichzeitigen Zugriffen auf die Datei gerechnet hat.
Möglicherweise werden auch zu grosse, oder zu viele, Caches für die Dateioperationen angelegt und Win kann nicht so viele verwalten.

Auch MS hat oft einfach die Meldung "Zuwenig Speicher … " in seinen Programmen ausgegeben. Oft war aber gar nicht zu wenig Hautptspeicher das Problem, sondern zuwenig Resurcen, welche in einem extra SPeicherbereich verwaltet wurden und früher auf 64KB begrenzt waren.

MfG Peter(TOO)

Hallo,

Hi,

habe hier ein Supportproblem, bei dem Prozesse einer Software
gelegentlich mit „Memory Error“ abschmieren. Da der Rechner
neu und nicht zu schwach ist, kann es ja eigentlich nur eine
Konfigurationssache sein.

Was mir aufgefallen ist: laut Windows Task Manager hat der
Rechner 4 CPUs. Kann das sein? Ich bin nicht so der
Hardware-Experte, ich kannte bis jetzt nur Dual Processor.

Haeh?

top - 18:43:28 up 6:32, 5 users, load average: 0.28, 0.34, 0.39
Tasks: 173 total, 1 running, 172 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu1 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu2 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu3 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu4 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu5 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu6 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu7 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu8 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu9 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu10 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu11 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu12 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu13 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu14 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Cpu15 : 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 65984824k total, 2105588k used, 63879236k free, 164768k buffers
Swap: 1052216k total, 0k used, 1052216k free, 1609560k cached 

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14456 root 16 0 5480 1252 856 R 0 0.0 0:00.11 top

Ja, ist ein intelkompatibler.

OS: Windows 2000 Server, SP4
CPU 2,4 GH Intel Xeon
2 GB RAM

Hm, wird wohl, wie erwaehnt, ein Dual Xeon mit Hyperthreading sein. Ziemlich albernes Feature, schalte ich immer gleich ab.

Weiteres kann ich auf Anfrage herausfinden.

Wie heisst die Software?

Die verwendete Software kann mit Hilfe mehrerer Prozessoren
mehrere Prozesse gleichzeitig laufen lassen (so sollte es
zumindest sein). Leider stirbt aber ein Prozess schon, wenn 2
gleichzeitig laufen.

Wie kommunizieren die Prozesse miteinander? Machen sie das ueberhaupt? Was macht denn die Software? Habt ihr keine Programmierer, die diese (eure?) Software debuggen koennen?

Ich habe den Verdacht, dass der Rechner eventuell zu „stark“
ist. Kann man die CPUs einzeln zum testen deaktivieren?

Klar, das HT kann man im BIOS abstellen, die zweite CPU kann man durch Oeffnen des Gehaeuses, Entfernen des Kuehlkoerpers und Extrahieren des darunterliegenden Chips deaktivieren.

Gruss vom Frank.

Haeh?

Danke für die freundliche Belehrung. So hab ichs gern.

Hm, wird wohl, wie erwaehnt, ein Dual Xeon mit Hyperthreading
sein. Ziemlich albernes Feature, schalte ich immer gleich ab.

Vermutlich eine weise Idee.

Wie heisst die Software?

Das möchte ich hier nicht sagen. Ich garantiere Dir: Du kennst sie nicht und Du wirst auch im Internet nichts Technisches dazu finden.

Wie kommunizieren die Prozesse miteinander? Machen sie das
ueberhaupt? Was macht denn die Software? Habt ihr keine
Programmierer, die diese (eure?) Software debuggen koennen?

Die Software führt jede Stunde nacheinander ca. 10 Prozesse pro angeschlossenem Hotel aus, welche Daten aus einer Oracle-DB per XML in eine andere DB ausliest, verarbeitet, Berechnungen damit anstellt und dann andere Daten zurückschreibt. Im genannten Fall sind 4 Hotels angeschlossen. Sobald sich die Prozesse 2er Hotels überschneiden (und zwar fast immer bei einem besonders rechenintensiven Prozess in der Mitte des Vorgangs) macht es "BRITZEL* und der Kram stürzt ab.

Selbstverständlich haben wir Programmierer. Bevor die anfangen, zu programmieren, muss ich aber das Problem reporten und Hardwareprobleme ausschließen. Und um das korrekt zu können, musste ich erst mal meine dumme Frage zu HT und mehreren CPUs loswerden :smile:

Klar, das HT kann man im BIOS abstellen

Damit werde ich es mal versuchen.

Gruß,

Myriam