Ich hoste eine Ruby on Rails-Anwendung auf einem Linode mit 96 GB Speicher. Alle Bilder meiner Anwendung werden auf Amazon gespeichert und von Amazon abgerufen. Daher sollte mein Linode mindestens 80 GB freien Speicher haben.
Wenn die Protokolldateien der Anwendung jedoch 200 MB überschreiten, wird folgende Fehlermeldung angezeigt:
Errno::ENOSPC: No space left on device
und meine Website geht runter.
Ich habe die Protokollrotation für meine Anwendung täglich mit dem folgenden Code in der Datei /etc/logrotate.conf aktiviert :
path/to/application/log/*.log {
daily
missingok
rotate 1
compress
delaycompress
notifempty
copytruncate
}
Aber jetzt habe ich angefangen, die gleichen Fehler zweimal am Tag zu bekommen, also habe ich meine Konfigurationseinstellungen basierend auf der Größe geändert als:
path/to/application/log/*.log {
size 1M
missingok
rotate 1
compress
delaycompress
notifempty
copytruncate
}
Ich habe auch die logrotate-Datei von /etc/cron.daily nach /etc/cron.hourly verschoben, sodass der logrotate-Cronjob jede Stunde ausgeführt wird und das Protokoll gedreht wird, wenn es 1 MB überschreitet. Ich habe den Apache neu gestartet.
Aber als ich nach einer Stunde nachgesehen habe, waren meine Dateien größer als 1 Million. Daher funktionierte der logrotate Cronjob nicht nach jeder Stunde . Wenn ich das Protokoll mit dem folgenden Befehl gewaltsam drehe:
sudo /usr/sbin/logrotate -f /etc/logrotate.conf
Dann werden die Protokolldateien gedreht und die Dateigröße verringert.
Ich kann nicht herausfinden, warum diese Konfiguration nicht funktioniert. Außerdem , wenn der Raum auf linode 80 GB ist wie funktioniert es beeinflussen , wenn Protokolldateien mehr als 200 Mb . Wie kann dem Protokollverzeichnis mehr Speicherplatz zugewiesen werden?
Wie vorgeschlagen, lief ich df -ih
, um zu überprüfen, ob mir die Inodes ausgehen . Die folgende Ausgabe bekomme ich:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/xvda 2.2M 263K 2.0M 12% /
devtmpfs 174K 2.0K 172K 2% /dev
none 174K 1 174K 1% /dev/shm
none 174K 33 174K 1% /var/run
none 174K 2 174K 1% /var/lock
none 174K 1 174K 1% /lib/init/rw
Somit sind meine Inodes fast frei. Mir gehen nicht die Inodes aus.
Die Ausgabe von df -h
ist wie folgt:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda 9.5G 8.7G 325M 97% /
devtmpfs 1010M 112K 1010M 1% /dev
none 1010M 0 1010M 0% /dev/shm
none 1010M 52K 1010M 1% /var/run
none 1010M 0 1010M 0% /var/lock
none 1010M 0 1010M 0% /lib/init/rw
Mein Speicherplatz ist wirklich weniger. Wie soll ich vorgehen?
Bitte helfen Sie. Vielen Dank!
df -h
?
df -h
unddf -hi
.