
Ich bin gerade dabei, einen Server mit 4GB RAM und 2 CPUs einzurichten. Der Stack besteht aus CentOS + NGINX + MySQL + PHP (mit APC) und spawn-fcgi. Damit sollen 10 Wordpress-Blogs bedient werden, von denen 3 täglich etwa 20.000 Zugriffe erhalten. Jede Wordpress-Instanz ist mit dem W3 TotalCache ausgestattet.
Ich habe ein paar Variablen, mit denen ich spielen kann:
- NGINX (Wie viele Worker-Prozesse, Worker-Verbindungen usw.)
- PHP (Welche Parameter in php.ini sollte ich ändern? Was ist mit apc?)
- Spawn-fcgi (Im Moment habe ich 6 php-cgi gespawnt. Wie viele davon sollte ich haben?)
Ich weiß, dass es ohne Tests schwer ist, das zu sagen, aber wenn Sie mir bitte einige ungefähre Zahlen nennen könnten, wäre das auch hilfreich.
Antwort1
worker_processes sollte normalerweise der Anzahl der Kerne entsprechen. Wenn Sie blockierende Prozesse haben (disk_io, lange Threads usw.), können Sie diesen Wert erhöhen.
Arbeitsprozesse * Arbeitsverbindungen = max. Clients
Stellen Sie sicher, dass Sie gzip konfigurieren. Es ist wahrscheinlich nicht notwendig, rcvbuf oder backlog für Ihre Site zu konfigurieren, daher würde ich mir über diese Einstellungen keine großen Gedanken machen.
Was Ihre PHP-Threads betrifft, würde ich wahrscheinlich 5-10 ausführen, wie Sie es getan haben. Wenn Sie 502 Gateway-Verbindungsfehler erhalten, müssen Sie dies möglicherweise erhöhen.
Für php.ini sollten die Standardeinstellungen gut funktionieren. Wenn Sie Bilder/Medien hochladen, erhöhen Sie post_max_size und upload_max_filesize entsprechend Ihren Anforderungen. APC ist praktisch eine vorkonfigurierte Konfiguration und sollte gut funktionieren.
Da Sie W3 Total Cache verwenden, vermeiden Sie auch eine Reihe von Zugriffen auf PHP, was ohnehin zu einer geringeren Belastung von PHP-CGI führen sollte.