php auf mehreren CPUs - Multi-CPU/Core
php auf mehreren CPUs - Multi-CPU/Core
am 24.03.2006 12:35:01 von dentagard
Hallo,
ich habe einen neuen Webserver mit 2xXeon. Durch Hyperthreading werden im
System 4 CPUs angezeigt. Wenn ich im Streßtest ein Skript viel arbeiten
lassen, dann ist es bei max. 25%. php nutzt also nur eine "CPU". Bekommt man
es irgendwie hin, dass alle CPUs von php genutzt werden oder ist php noch
nicht so weit, dass es Multi-CPU/Core fähig ist, also die Threads auf
verschiedene CPUs verlagern kann?
Habe es auf einigen Systemen nun probiert. Es liegt definitiv daran, dass
php nur eine CPU auslastet.
Nutze php 4.4.2 auf W2k3 Standard mit Apache 2.055.
Kennt da jemand eine Lösung, oder geht es mit php (noch) nicht?
Merci
Re: php auf mehreren CPUs - Multi-CPU/Core
am 24.03.2006 14:10:20 von Joerg Behrens
dentagard schrieb:
> Hallo,
>
> ich habe einen neuen Webserver mit 2xXeon. Durch Hyperthreading werden im
> System 4 CPUs angezeigt. Wenn ich im Streßtest ein Skript viel arbeiten
> lassen, dann ist es bei max. 25%. php nutzt also nur eine "CPU". Bekommt man
> es irgendwie hin, dass alle CPUs von php genutzt werden oder ist php noch
> nicht so weit, dass es Multi-CPU/Core fähig ist, also die Threads auf
> verschiedene CPUs verlagern kann?
Genau.
> Habe es auf einigen Systemen nun probiert. Es liegt definitiv daran, dass
> php nur eine CPU auslastet.
>
> Nutze php 4.4.2 auf W2k3 Standard mit Apache 2.055.
>
> Kennt da jemand eine Lösung, oder geht es mit php (noch) nicht?
Das wird auch so schnell nicht gehen....zumind. wuerde ich nicht drauf
warten wollen :). In wiefern man ueberhaupt Multithreading mal
hinbekommen koennte mag ich mir nicht vorstellen, geschweige denn eine
parallelisierung.
Es waere schoen wenn hier PHP, oder ueberhaupt auch andere Programme,
32CPUS nutzen koennten.... so bleibt es halt dabei 32 Programme
gleichzeitig auszuführen.
Gruss
Joerg
--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
Re: php auf mehreren CPUs - Multi-CPU/Core
am 24.03.2006 14:28:13 von dentagard
Da scheint ja nur Hyperthreading abschalten weiterzuhelfen, dann hat man bei
2 CPUs wenigstens 50% und nicht mir Hyperthreading 25%.
Bin da gerade am testen...
"Joerg Behrens" schrieb im Newsbeitrag
news:48i9doFk5523U1@individual.net...
> dentagard schrieb:
>> Hallo,
>>
>> ich habe einen neuen Webserver mit 2xXeon. Durch Hyperthreading werden im
>> System 4 CPUs angezeigt. Wenn ich im Streßtest ein Skript viel arbeiten
>> lassen, dann ist es bei max. 25%. php nutzt also nur eine "CPU". Bekommt
>> man es irgendwie hin, dass alle CPUs von php genutzt werden oder ist php
>> noch nicht so weit, dass es Multi-CPU/Core fähig ist, also die Threads
>> auf verschiedene CPUs verlagern kann?
>
> Genau.
>
>> Habe es auf einigen Systemen nun probiert. Es liegt definitiv daran, dass
>> php nur eine CPU auslastet.
>>
>> Nutze php 4.4.2 auf W2k3 Standard mit Apache 2.055.
>>
>> Kennt da jemand eine Lösung, oder geht es mit php (noch) nicht?
>
> Das wird auch so schnell nicht gehen....zumind. wuerde ich nicht drauf
> warten wollen :). In wiefern man ueberhaupt Multithreading mal hinbekommen
> koennte mag ich mir nicht vorstellen, geschweige denn eine
> parallelisierung.
>
>
> Es waere schoen wenn hier PHP, oder ueberhaupt auch andere Programme,
> 32CPUS nutzen koennten.... so bleibt es halt dabei 32 Programme
> gleichzeitig auszuführen.
>
> Gruss
> Joerg
>
> --
> TakeNet GmbH Mobil: 0171/60 57 963
> D-97080 Wuerzburg Tel: +49 931 903-2243
> Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
Re: php auf mehreren CPUs - Multi-CPU/Core
am 24.03.2006 16:01:04 von Joerg Behrens
dentagard schrieb:
> Da scheint ja nur Hyperthreading abschalten weiterzuhelfen, dann hat man bei
> 2 CPUs wenigstens 50% und nicht mir Hyperthreading 25%.
Hmm?
Na dann schalte doch die 2. CPU auch gleich mit ab und dann bist du bei
100% Auslastung ;)
4 CPUS = 25% = 1 CPU 100%
2 CPUS = 50% = 1 CPU 100%
1 CPUS = 100% = 1 CPU 100%
Gruss
Joerg
--
TakeNet GmbH Mobil: 0171/60 57 963
D-97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
Re: php auf mehreren CPUs - Multi-CPU/Core
am 24.03.2006 16:19:52 von Johannes Vogel
Hi Unbekannter
dentagard wrote:
^-- Realnamen sind hier erwünscht.
> ich habe einen neuen Webserver mit 2xXeon. Durch Hyperthreading werden im
> System 4 CPUs angezeigt. Wenn ich im Streßtest ein Skript viel arbeiten
> lassen, dann ist es bei max. 25%. php nutzt also nur eine "CPU". Bekommt man
> es irgendwie hin, dass alle CPUs von php genutzt werden oder ist php noch
> nicht so weit, dass es Multi-CPU/Core fähig ist, also die Threads auf
> verschiedene CPUs verlagern kann?
> Habe es auf einigen Systemen nun probiert. Es liegt definitiv daran, dass
> php nur eine CPU auslastet.
> Nutze php 4.4.2 auf W2k3 Standard mit Apache 2.055.
> Kennt da jemand eine Lösung, oder geht es mit php (noch) nicht?
Ich bin da weniger versiert, könnte mir aber vorstellen, dass wenn du
forkst, das Problem bereits gelöst hast. Wie weit das Windows zulässt,
sei ebenfalls dahin gestellt.
Wenn ich unter Linux/Unix einen Prozess forke, kann das OS die Prozesse
auf die CPUs verteilen. Dann hättest du das Problem doch bereits gelöst.
Welchen Nutzen soll denn eigentlich dieses Hyperthreading haben? Die CPU
wird ja dadurch nicht schneller... Im Gegenteil - es muss ja nur mehr
Aufwand für die Verwaltung betrieben werden...
Ratlos, Johannes
Re: php auf mehreren CPUs - Multi-CPU/Core
am 30.03.2006 15:19:33 von Peter Jutzies
Joerg Behrens wrote:
> dentagard schrieb:
>
>> Da scheint ja nur Hyperthreading abschalten weiterzuhelfen, dann hat
>> man bei 2 CPUs wenigstens 50% und nicht mir Hyperthreading 25%.
>
>
> Hmm?
> Na dann schalte doch die 2. CPU auch gleich mit ab und dann bist du bei
> 100% Auslastung ;)
>
> 4 CPUS = 25% = 1 CPU 100%
> 2 CPUS = 50% = 1 CPU 100%
> 1 CPUS = 100% = 1 CPU 100%
Mit einer dritten echten CPU und ein bischen Virtualisierung
koennte man ein Cluster aus 2 Rechnern + 1 Load balancing server
basteln.
Dann ist wenigstens jede reale CPU zu 50% ausgelastet. Ohne
Hyperthreading sogar zu 100%, wenn der Loadbalancing Server
nebenbei Passwoerter sucht oder sich anderweitig beschaeftigt.
Tsch"u"s
Peter