fastcgi process manager

19
© Mayflower GmbH 2011 FPM (FastCGI Process Manager) Stefan Staudenmeyer | 19.05.11

Upload: mayflower-gmbh

Post on 02-Jul-2015

1.549 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: FastCGI Process Manager

© Mayflower GmbH 2011

FPM (FastCGI Process Manager)

Stefan Staudenmeyer | 19.05.11

Page 2: FastCGI Process Manager

Mayflower GmbH I 2

Wer bin ich?

https://www.xing.com/profile/Stefan_Staudenmeyer2

http://twitter.com/#!/DoerteDev

http://www.linkedin.com/pub/stefan-staudenmeyer/1b/86b/b14

Stefan StaudenmeyerDeveloper @ Mayflower GmbH

Zend Certified Engineer (ZCE 5.3) Oracle Certified Professional, MySQL 5.0 Developer

Page 3: FastCGI Process Manager

Mayflower GmbH I 3

Was ist der FPM?

PHP-FPM

FastCGI Process Manager

Vorführender
Präsentationsnotizen
A simple and robust FastCGI Process Manager for PHP PHP-Builtin (>= 5.3) FastCGI implementation mit netten Addons, verfügbar ab Version 5.2 Logging-Funktionen für langsame Prozesse (+ Trace) Dynamisches / Statisches Spawning von Workern Eigene ini-Direktiven in eigener File Worker unabhängig konfigurierbar (Owner / Env) Spezielle PHP Funktion, um den Request zu beenden / Daten zu flushen
Page 4: FastCGI Process Manager

Mayflower GmbH I 4

Was ist FastCGI?

FastCGI

Common Gateway Interface mit ein paar Erweiterungen ...

Vorführender
Präsentationsnotizen
Highspeed-Interface um mit Scriptsprachen zu kommunizieren Isoliert die Backend-Sprache vom Webserver Gibt’s für alle gängigen Webserver Apache NginX LighTTPD (Lighty) Zeus ...
Page 5: FastCGI Process Manager

Mayflower GmbH I 5

Der Ablauf mit prefork und workern…→ Der Request wird vom Webserver aufgefangen

Page 6: FastCGI Process Manager

Mayflower GmbH I 6

→ Webserver mappt Vhosts zur richtigen PHP-File

Page 7: FastCGI Process Manager

Mayflower GmbH I 7

→ Unpriviligierter Kindprozess wird akquiriert / beauftragt

Page 8: FastCGI Process Manager

Mayflower GmbH I 8

→ PHP-File wird geparst

Page 9: FastCGI Process Manager

Mayflower GmbH I 9

→ Prozess gibt den Output an den Webserver weiter

Page 10: FastCGI Process Manager

Mayflower GmbH I 10

→ Webserver schnürt die Response zusammen

Page 11: FastCGI Process Manager

Mayflower GmbH I 11

→ Der Webserver gibt die Response zurück

Page 12: FastCGI Process Manager

Mayflower GmbH I 12

Was den mpm_prefork ausmacht?

I Geeignet für SingleCore-Systeme

I Die einfachste Lösung, wenn Thread-Unsafe Libraries verwendet werden müssen...

I Benötigt eine gut balancierte Config· MaxClients zu niedrig: zu wenig Zugriffe möglich· MaxClients zu hoch: zu wenig RAM für die Prozesse

I Könnte bei vielen Zugriffen zu RAM-Problemen führen

Page 13: FastCGI Process Manager

Mayflower GmbH I 13

Gibt es Alternativen zu FPM?

Vorführender
Präsentationsnotizen
Apache's eigenes Workermodul: mpm_worker (no PHP) Alternative Daemonen (Php-fcgi, Spawn-fcgi..) sind meist unstabil... Manuelle Spawnscripts (Will man das?)
Page 14: FastCGI Process Manager

Mayflower GmbH I 14

Installation?

Vorführender
Präsentationsnotizen
Über *nix und PHP manuell „gebaut“ (./configure –with-fpm) PHP Version < 5.4 – LibXML2 wird vorrausgesetzt! (libxml2-dev @ debian)
Page 15: FastCGI Process Manager

Mayflower GmbH I 15

Über den Paketmanager?

Vorführender
Präsentationsnotizen
Über den OS-eigenen Packethersteller / Drittrepos Ubuntu / Debian 6 bringen ihn mit PHP 5.3 mit... Debian < 6 erhält das paket „php5-fpm“ über Dotdeb.org Windows Server benötigt Cygwin
Page 16: FastCGI Process Manager

Mayflower GmbH I 16

Die Konfiguration zum Laufen bringen?

Vorführender
Präsentationsnotizen
Process-Manager-Mode übernimmt: Static = Fixed nr. von workern Dynamic = Basierend auf: max_children start_servers min_spare_servers max_spare_servers Easy: PID Owner / Chroot-Environment Log-Level / Destination Kontroll-Timeout Port Tricky: Anzahl Worker Requests pro Worker PHP – Setting – RAM / Prozess
Page 17: FastCGI Process Manager

Mayflower GmbH I 17

Das Ding mit den Workern...

Vorführender
Präsentationsnotizen
Zu wenig RAM: Anwendung kann sterben Segfaults können für Probleme sorgen� Zu wenig Worker: User müssen warten Können nach dem timeout 500er bekommen
Page 18: FastCGI Process Manager

5/19/2011 Mayflower GmbH 18

Thank you for your attention!

Referent Stefan Staudenmeyer

[email protected]

+49-931-35965-1151

Mayflower GmbH

Pleichertorstr. 2

97070 Würzburg

Page 19: FastCGI Process Manager

Mayflower GmbH I 19

http://www.flickr.com/photos/andrein/2318093969/

http://www.flickr.com/photos/tpholland/3205521963/

http://www.flickr.com/photos/theseanster93/831341036/

http://en.wikipedia.org/wiki/File:ChuckNorris200611292256.jpg

http://www.flickr.com/photos/cantoni/4426017757/

http://www.flickr.com/photos/erlan/524727266/#/

http://www.flickr.com/photos/jensenchua/2810587631/

http://www.flickr.com/photos/25609635@N03/5355735953/

http://www.flickr.com/photos/designandtechnologydepartment/4113003734/

http://www.flickr.com/photos/mape_s/360272436/sizes/z/in/photostream/

http://twitter.com/| http://www.linkedin.com/| https://www.xing.com/

http://php-fpm.org/| http://www.fastcgi.com/drupal/| Micha Krieg

Quellen