Dual / Quad Core-Unterstützung?

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Dual / Quad Core-Unterstützung?

Postby th1alb » 04. August 2008 16:22

Hallo, serverlastige PHP-Scripte benutzen bei mir nur einen Core, kann mir jemand erklären, wie ich XAMPP dazu bringe, mehrere Prozessoren zu unterstützen/zu nutzen? Ich nutze XAMPP lediglich privat und habe nur ein Script zu laufen, was mir Grafiken wie Fraktale usw. generiert. Nur leider eben nur mit einem Core...

Vielen Dank, th1alb
th1alb
 
Posts: 98
Joined: 31. August 2005 21:14

Postby glitzi85 » 04. August 2008 19:13

User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Postby th1alb » 06. August 2008 11:08

Hmm, ich habe in der
xampp\apache\conf\httpd.conf

Include conf/extra/httpd-mpm.conf

aktiviert, jedoch wird immer noch nur ein core genutzt. Muss ich sonst noch etwas tun?

httpd-mpm.conf hat folgenden Inhalt(BeOs/OS2 usw. hab ich mal weggelassen ) :
Code: Select all
#
# Server-Pool Management (MPM specific)
#

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
#
# Note that this is the default PidFile for most MPMs.
#
<IfModule !mpm_netware_module>
    PidFile /xampp/apache/logs/httpd.pid
</IfModule>

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
LockFile @rel_logfiledir@/accept.lock
</IfModule>
</IfModule>

#
# Only one of the below sections will be relevant on your
# installed httpd.  Use "apachectl -l" to find out the
# active mpm.
#

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum  number of requests a server process serves
<IfModule mpm_winnt_module>
    ThreadsPerChild     250
    MaxRequestsPerChild   0
</IfModule>


Wäre super, wenn mich jemand auf den richtigen Weg bzw. mir in ein paar Worten nahebringen könnte, warum das nicht funktioniert. Auch wenn ich hier lokal versuche, das script "doppelt" aufzurufen, bleibt die Gesamtauslastung meines systems bei 50% (also ein Core).

Dankesehr! th1alb
th1alb
 
Posts: 98
Joined: 31. August 2005 21:14

Postby Nobbie » 06. August 2008 11:13

>Auch wenn ich hier lokal versuche, das script "doppelt" aufzurufen, bleibt die Gesamtauslastung meines systems bei 50% (also ein Core).

So funktioniert das auch nicht mit Mehrfach-CPU-Kernen. Dazu muss der aufrufende Prozess auch so gestaltet sein, dass er Threads (Einzelteile des Programmes) überhaupt separat auslagern kann.

Das hängt von wesentlich(!) mehr Dingen ab, als nur vom Vorhandensein mehrerer Kerne. Ein einzelner Thread kann gar nicht aufgeteilt werden - und deswegen kannst Du das alles vergessen.

Wenn Du multithreaded Anfragen hast (meistens komplexe Datenbankzugriffe), dann kann das (auch nur gegebenfalls) auf verschiedene Kerne aufgeteilt werden.
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04

Postby th1alb » 06. August 2008 11:28

Ein einzelner Thread kann gar nicht aufgeteilt werden


Ist also folgende Aussage korrekt?:
Es ist nicht möglich, ein Script einfach aufzurufen, was dann mehrere Cores für die Berechnung der in dem Script befindlichen Anweisungen nutzt.

Das ist eigentlich alles was ich möchte, die in einem PHP-Script -welches nur ich alleine, einzeln und einmalig aufrufe- stehenden Anweisungen sollen bei der Ausführung 2 Cores nutzen. Das ist nicht möglich?

th1alb
th1alb
 
Posts: 98
Joined: 31. August 2005 21:14

Postby Nobbie » 06. August 2008 13:55

>Es ist nicht möglich, ein Script einfach aufzurufen, was dann mehrere Cores für die Berechnung der in dem Script befindlichen Anweisungen nutzt.

Nein, einfach so geht das nicht. Außerdem ist "Script" ein seeeeeehhhr weiter Begriff, es hängt alles davon ab, was da stattfindet - von Videokonvertierung über multiple Datenindexierung bis zur Routensuche ist ja alles machbar - und dort erst wird entschieden, ob ggf. ein Thread ausgelagert werden kann.

Beeinflussen kannst Du das GAR NICHT.
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04

Postby guw » 14. August 2008 01:16

Ist also folgende Aussage korrekt?:
Es ist nicht möglich, ein Script einfach aufzurufen, was dann mehrere Cores für die Berechnung der in dem Script befindlichen Anweisungen nutzt.
So wie ich die Ergebnisse in diesem Artikel http://www.tummy.com/Community/Articles ... re-apache/ interpretiere, benutzt Apache automatisch mehrere Cores fuer eine einzelne Aufgabe, wenn sie vorhanden sind.
guw
 
Posts: 15
Joined: 22. July 2008 10:49


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 20 guests