Mailinglisten-Archive |
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