Ich betreibe eine EC2 m4.xlarge-Instanz mit einem 500 GB großen Cold HDD EBS-Volume, das als Cache für einen von mir ausgeführten Bildgrößenänderungsdienst verwendet wird (Thumbor hinter dem Nginx-Reverse-Proxy).
Hin und wieder scheint der Bilddienst überlastet zu sein, und ich kann nicht herausfinden, wo der Flaschenhals ist. CPU-Auslastung und Speicher scheinen in Ordnung zu sein, es scheint zu diesem Zeitpunkt nicht viel mehr Verkehr zu geben. Eine Sache, die mit dem Problem zu korrelieren scheint, ist, dass es fast jeden Tag zu einer bestimmten Zeit für etwa eine halbe Stunde einen Rückgang bei den VolumeReadBytes und einen Sprung bei den VolumeReadOps gibt. Ich habe keine Cron-Jobs laufen, der Server ist nur darauf ausgelegt, skalierte Bilder bereitzustellen. Ich weiß nicht, was das sein könnte. Könnte das das Problem sein?
Ich wäre für jeden Ratschlag sehr dankbar.
Antwort1
EBS hat Quoten für IOPS und Durchsatz. Irgendetwas reizt die IOPS aus, die Frage ist, was.
Es gibt einige Tools, mit denen dies herausgefunden werden kann. iotop --time --batch
ist eines davon. iosnoop aus Brendan Greggs Perf-Tools-Skripten ist ein weiteres, wenn Sie eine Ftrace-Implementierung wünschen.
Sie könnten auditd sogar so einrichten, dass alle gelesenen Systemaufrufe aufgezeichnet werden. Aber die Protokollierung in eine Datei würde wahrscheinlich den Großteil Ihres IOPS-Kontingents verbrauchen ...
Wie entschlossen Sie auch sein mögen, Sie müssen sich entscheiden, ob Sie die Aufgabe beenden, einen schnelleren Speicher verwenden oder die schlechte Leistung für diese halbe Stunde in Kauf nehmen.