phpbar.de logo

Mailinglisten-Archive

mysql DB und Apachen.

mysql DB und Apachen.

stepken mysql_(at)_lists.phpcenter.de
Mon, 9 Apr 2001 19:42:25 +0200


Am Montag 09 April 2001 16:17 schrieb Harald Land:
> Hallo Liste
>
> Hat jemand Erfahrung oder Tipps für folgendes Problem?
>
> Eine MySQL DB soll zusammen mit dem Apachen auf einer Maschine laufen.
>
> Das ganze aber unter Last. (10000 PI pro Tag)
> Da MySQL seine Datentabellen als Files ablegt, könnte das ganze arge
> Perfomance Probleme bekommen, oder?
> Hilft eventl. eine Raid?

Nein, RAID ist auch nicht viel schneller als eine neue 40 GIG UDMA AT-BUS 
Festplatte, bricht aber performancemäßig schnell zusammen, wenn eine Platte 
ausfällt. 
Ich habe unter http://www.hwk-duesseldorf.de/linuxkurs/ ganz am Ende ein 
Skript, welches man für ein N-Way - Fallover Cluster für MySQL nehmen kann. 

Man kann Apache und MySQL tunen, wenn man folgendes berücksichtigt:

1.  echo 5 >  /proc/sys/net/ipv4/tcp_keepalive_time 
2. keepalive in httpd.conf ausschalten.
3. MaxClients 150  heruntersetzen, damit mehr PHP Skripte simultan ausgefürt  
   werden (PHP ist nicht multithreaded)
4. PHP4 ist leider nicht Multithreaded, d.h. wenn eine Suchanfragen via PHP 
auf MySQL läuft, werden alle anderen PHP Skripte nicht ausgeführt. Man sollte 
möglichst PHP Sktipte als CGI-BIN ...(#!/bin/php .....) laufen lassen, damit 
jeder Aufruf sein eigenes Skript erhält. Kernel 2.4 mit UMA spart hierbei 
sehr viel RAM gegenüber Kernel 2.2. (Unified Memory Architecture, nicht zu 
verwechseln mit Universal Memory Access der Motherboards)...

5. Damit auch dynamische Seiten statisch ausgeliefert werden, soweit es geht, 
sollte man TOMCAT Server verwenden - das ist ein Apache mit eingebautem SQUID 
Proxy-Server. Die Anfragen auf dynamische Webseiten werden also aus dem 
Festplatten - Cache ausgeliefert ....Wer Session/User - Tracking macht, dem 
nutzt das natürlich nix......  

6. Zahl der Network - und Filehandles heraufsetzen. LINUX 2.2 hat hier ein 
Limit von 1024 Netzwerkverbindungen und offenen Files. Bei Webseiten, die 
z.B. aus 200 kleinen Grafiken bestehen, machen 5 simultane Seitenaufrufe von 
unabhängigen Surfern bereits die Kiste zu. Tip: Update Kernel 2.4, 
Filehandles im Kernel heraufsetzen, neu booten, Apache neu kompilieren ....

Danach ist der Server sehr viel schneller (bis Faktor 100) ....

PHP sollte man besser nicht als Webhoster anbieten, da auch auf 32 Prozessor 
- Maschinen nicht PHP Skripte parallel ausgeführt werden können, außer über 
ausreichend viele HTTPD - Prozesse. Diese stehlen nur unter Kernel 2.4 nicht 
viel RAM, Kernel 2.2 knickt hier völlig ein....
NT hat übrigends ein Limit bei 1500 Filehandles und Network Handles 
.....ebenso, wie SUN Solaris ....Solaris kann man tunen, NT .... hmmm - 
Knowlegdebase ......

Gru/3, Guido Stepken

> Ich weiß das es einfacher wäre DB-Server und Web-Server zu trennen, geht
> aber in diesem Fall nicht.

Auch da werden Filehandles verbraten ....über das Loopback - Interface 
........die Server sind besser auf 1 Maschine aufgehoben.


-- 
Linux is like a wigwam - No GATES, no WINDOWS and there is a APACHE inside ..
Have fun ! Greetings to all MCSE's (Microsoft Certified System Entertainer)

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive