Jump to content
Froxlor Forum
  • 0
mangorausch

Die perfekte PHP5-FPM Config?

Question

Moin,

 

seitdem ich PHP5-FPM installiert habe, ist mein Webserver einfach tierisch langsam.

Was ist denn eure perfekte PHP5-FPM Config?

 

Paar Details zum Server:

 

Quadcore Intel Xeon E312xx (Sandy Bridge)

8GB RAM

PHP Version: 5.4.35-0+deb7u2

Apache/2.2.22 (Debian)

 

 

Circa 5.000 Seitenaufrufe pro Monat, haupts?chlich Wordpress Instanzen.

Share this post


Link to post
Share on other sites

18 answers to this question

Recommended Posts

  • 0

Es gib keine "perfekte" config...Die Hardware zu posten ist ganz nett, aber wie sieht denn deine php-fpm config aus? Die "Standard"-Config ist in der Tat nicht f?r gr??ere Seiten gedacht (oder mehrere, oder beides :P)

Share this post


Link to post
Share on other sites
  • 0


Dynamic

Anzahl der Kind-Prozesse 25

Anzahl der beim Starten zu erstellenden Kind-Prozesse 25

Mindestanzahl der Idle-Prozesse 10

Maximale Anzahl der Idle-Prozesse 25

Requests pro Kindprozess bevor Neuerstellung (respawning) 0

 

allow_call_time_pass_reference = Off

allow_url_fopen = On

asp_tags = Off

disable_classes =

disable_functions = curl_multi_exec,parse_ini_file,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,system

display_errors = On

display_startup_errors = Off

enable_dl = Off

error_reporting = E_ALL & ~E_NOTICE

expose_php = Off

file_uploads = On

cgi.force_redirect = 1

gpc_order = "GPC"

html_errors = Off

ignore_repeated_errors = Off

ignore_repeated_source = Off

include_path = ".:{PEAR_DIR}"

log_errors = On

log_errors_max_len = 1024

magic_quotes_gpc = Off

magic_quotes_runtime = Off

magic_quotes_sybase = Off

max_execution_time = 30

max_input_time = 60

memory_limit = 128M

{OPEN_BASEDIR_C}open_basedir = "{OPEN_BASEDIR}"

output_buffering = 4096

post_max_size = 512M

precision = 14

register_argc_argv = Off

register_globals = Off

report_memleaks = On

sendmail_path = "/usr/sbin/sendmail -t -i -f {CUSTOMER_EMAIL}"

session.auto_start = 0

session.bug_compat_42 = 0

session.bug_compat_warn = 1

session.cache_expire = 180

session.cache_limiter = nocache

session.cookie_domain =

session.cookie_lifetime = 0

session.cookie_path = /

session.entropy_file = /dev/urandom

session.entropy_length = 16

session.gc_divisor = 1000

session.gc_maxlifetime = 1440

session.gc_probability = 1

session.name = PHPSESSID

session.referer_check =

session.save_handler = files

session.save_path = "{TMP_DIR}"

session.serialize_handler = php

session.use_cookies = 1

session.use_trans_sid = 0

short_open_tag = On

suhosin.mail.protect = 1

suhosin.simulation = Off

track_errors = Off

upload_max_filesize = 2048M

upload_tmp_dir = "{TMP_DIR}"

variables_order = "GPCS"

zlib.output_compression On

 

Share this post


Link to post
Share on other sites
  • 0

Was bei mir z.B. gut l?uft ist:

 

pm = ondemand
pm.max_children = 30            // Anzahl der Kind-Prozesse
pm.max_requests = 600           // Requests pro Kindprozess bevor Neuerstellung (respawning)
Kommt halt wirklich auf das System an, bei jedem ist was anderes "gut". Du musst etwas mit den Process-Managern und den Werten rumspielen. Schau auch mal bei Google, es gibt ein paar "Faustregeln" auf die manche Leute schw?ren, aber letztendlich muss es f?r dich passen...einfach rumprobieren.

Share this post


Link to post
Share on other sites
  • 0

Nutze auch Apache2+PHP-FPM und klink mich an der Stelle mal ein.

 

Meine Conf:

pm = ondemand
pm.max_children = 5
pm.start_servers = 20
pm.process_idle_timeout = 120
pm.max_requests = 0

Mit der Config lauf ich bisher ganz gut, zumindest ist mir nichts negatives aufgefallen. Auf meinem Server werden ca. 50 Websites mit wenig Traffic gehostet, davon haben einige jedoch manchmal einen kleinen Traffic-Peak.

 

K?nntest du vergleichsweise was zu deinem System sagen d00p?

Share this post


Link to post
Share on other sites
  • 0

K?nntest du vergleichsweise was zu deinem System sagen d00p?

 

ca. 200 Websites, von wenig bis mittelm??ig besucht

 

 

Meine Conf:

pm = ondemand
pm.max_children = 5
pm.start_servers = 20
pm.process_idle_timeout = 120
pm.max_requests = 0

 

pm = ondemand nutzt sowieso nur "max_children", "process_idle_timeout" und "max_requests"...der Rest ist also irrelevant.

Share this post


Link to post
Share on other sites
  • 0

Mal dran gedacht, dass das durchaus auch an dem Wordpress liegen kann? Au?erdem, wenn du gleich sagst "geht immer noch net", dann hast du bestimmt keine 5 Minuten mit verschiedenen Werten "probiert" wie ich es gesagt habe...es gibt keine EINE CONFIG die immer super ist. Probiere aus, nimm mal mehr mal weniger childprocesses, mal mehr mal weniger requests per child, etc. Lies dir online Artikel ?ber Speicherverbrauch und Prozesse durch, dann verstehst du vllt besser, wo du welche Schraube drehen musst, um m?glichst alles aus der Kiste rauszuholen.

Share this post


Link to post
Share on other sites
  • 0

Wie schon geschrieben wurde, ist denn der Apache wirklich schuld, oder liegt es vielleicht an Wordpress? Gerade bei solchen CMS Systemen gibt es viele Flaschenh?lse.

 

- Webserver

- ggf PHP (eben z.B. FPM)

- Datenbank (Daran liegt es sehr oft)

- IO Last (Wenn die Platten nicht hinterher kommen, bringt die beste Config nix)

- Bugs / Schlechte Programmierung von Plugins  oder einfach nur Externe Elemente die ewig brauchen

 

Dazu kommen nat?rlich noch die ?blichen Bots und Angriffe. Wenn dir dauerhaft einer die wp-admins zu ballert, w?rds mich nicht wundern wenn der Server Lahmt.

  • Like 1

Share this post


Link to post
Share on other sites
  • 0

Wie d00p schon sagte, die Load allein bringt nicht viel, au?erdem ist die genannte Load bei nem Xeon bei weitem im Rahmen, die halten schon noch etwas mehr aus. 

 

Der Link bringt uns glaube ich auch nicht weiter. Zumindest im Moment sind alle Seiten au?er die Startseite nicht vorhanden. Und die Startseite l?dt bei mir wir ein Blitz.

Share this post


Link to post
Share on other sites
  • 0

das gleiche bei mir...Kann es sein, dass es sich vllt um eine andere Domain handelt? Oder bekommst du auf diese Seite 5k Visits/Monat? Ansonsten kann ich jetzt auch nichts am WP feststellen, weil du dir scheinbar deine Permalinks zerschossen hast, kann das sein?

Share this post


Link to post
Share on other sites
  • 0

5000 besuche im monat is doch nix...also da geht ja nich ma der kleinste server in die knie. das sind ja nichma 200 besucher am tag...wenn man das jetzt noch auf 24 stunden aufteilt sind das im schnitt grad ma 7 besucher die stunde...das is doch gar nix....

Share this post


Link to post
Share on other sites
  • 0

Apache auf 2.4 aktualisiert, mod_rewrite sollte nun funktionieren.

 

Habe mal mysqltuner installiert, und mal die vorgeschlagenen Anpassungen vorgenommen, leider l?uft immer noch nichts schneller, urgh.

 

Bei der geposteten Domain, oben, sind es 2k pro Monat.

Share this post


Link to post
Share on other sites
  • 0

2000 im monat...ich beziehe mich auf meine Rechnung gestern abend und sage: das ist doch gar nix...da stimmt wohl was anderes nicht bei dir. An den Visits/Requests liegt das sicher nicht.

 

Hast du mal eine andere dynamische Seite getestet? Hast du mal ein Wordpress plain ohne plugins oder so aufgesetzt und geschaut ob das auch schon so h?ngt?

Share this post


Link to post
Share on other sites
  • 0

?hm besteht dein Problem den aktuell noch? Zugegeben, beim ersten Aufruf ist die Seite nicht unbedingt super schnell, aber langsam w?rde ich das im Moment auch nicht nennen. Zumal alles richtig gecached wird und somit ein erneuter aufruf einer Seite quasi sofort da ist.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now





×
×
  • Create New...