Einen größeren Tarif zu kaufen geht schnell und ist manchmal richtig. Es ist auch der häufigste Weg, Geld für ein Problem auszugeben, das ein fehlender Index oder ein einzelner langsamer API-Aufruf war. Zehn Minuten Messen entscheiden das.
Geht Ihnen wirklich der Speicher aus
free -h
vmstat 1 5
Lesen Sie in vmstat die Spalten si und so: ein- und ausgelagerte Seiten pro Sekunde. Dauerhaft von null verschiedene Zahlen heißen, dass der Maschine wirklich Speicher fehlt. Nullen heißen, dass es nicht so ist, egal was die Spalte free sagt.
Linux nutzt freien Speicher absichtlich als Plattencache. Eine Maschine, die fast keinen freien Speicher und kein Swapping meldet, ist gesund - siehe RAM, Swap und wann Swap ein Symptom ist.
Was es stattdessen meist ist
- Eine langsame Abfrage. Eine Abfrage ohne Index auf einer wachsenden Tabelle. Siehe das Slow Query Log.
- Warten auf etwas anderes - eine Zahlungs-API, einen Mailserver, einen fremden Feed -, wobei der Server untätig ist und nicht beschäftigt.
- Die Platte. Hoher iowait in top heißt, der Speicher ist die Grenze; mehr RAM hilft nur, indem es darum herum cacht.
- Ein CPU-Kern am Anschlag durch einen einfädigen Job, während die anderen untätig dasitzen.
Sie getrennt lesen
top -b -n1 | head -15 # load, iowait, what is busy
iostat -x 1 3 # disk latency and utilisation
ss -s # connection counts
Wann mehr RAM die Antwort IST
- Anhaltendes Swapping bei normalem Verkehr.
- Ein Datenbank-Arbeitsset, das größer ist als das, was Sie dem Buffer Pool geben können - siehe innodb_buffer_pool_size.
- Ein PHP-Pool, den Sie für Ihren Verkehr nicht groß genug machen können, ohne den Speicher zu sprengen.
Erst messen, dann aufrüsten. Ein Tarifwechsel ist leicht gemacht und unangenehm rückgängig zu machen, und die langsame Abfrage ist danach immer noch da - jetzt auf einer teureren Maschine.
