Ich habe eine riesige Protokolldatei, die ich auf einem Produktionswebserver löschen muss. Ich mache mir Sorgen, dass das System dadurch gecrawlt wird, wenn ich es unter Linux verwende. Irgendwelche brillanten Ideen?
Aktualisieren:
Dateisystem: ext3
Partition: / var (hauptsächlich Protokolle und MySQL-Daten)
Die Protokolldatei wird nicht mehr beschrieben. (Es werden keine zusätzlichen Daten angehängt.)
Webserver ist LAMP (viele E / A)
Antworten:
Es kann schneller sein, die Datei auf Null zu setzen / abzuschneiden, als sie zu entfernen. Ich erwähne dies auch, weil es sich um eine wirklich große Protokolldatei handelt, daher muss eine enorme Menge an Prozessaktivität darauf geschrieben werden. Versuchen Sie,
: > /path/to/logfile.log
wenn Sie nicht in der Lage sind, die Produktionsdienste zu stoppen und zu starten.quelle
ionice -c3 rm yourfile.log
ist Ihr bester Schuss, dann gehört rm zur Leerlauf-E / A-Klasse und verwendet E / A nur, wenn ein anderer Prozess dies nicht benötigt. ext3 ist beim Löschen großer Dateien nicht herausragend und Sie können nicht viel dagegen tun. Ja, der Befehl rm verlangsamt Ihr System. Das Ausmaß der Langsamkeit und die Dauer des Löschens kann man nur erraten, es hängt so sehr von der Hardware, der Kernelversion und den Einstellungen für die Erstellung des ext3-Dateisystems ab.Für Protokollserver und andere Server mit großen Dateien verwende ich normalerweise XFS, da es mit ihnen sehr schnell ist.
quelle
ionice -c2 -n7 rm big.log
das für angemessener.Eine alternative Lösung besteht darin, separate Festplatten zu haben und zwischen diesen zu wechseln. Wenn Sie sich also auf einer Festplatte angemeldet haben, wechseln Sie zur anderen, und Sie können dann viele E / A-Vorgänge verwenden, um Inhalte zu entfernen, ohne die aktive Festplatte zu belasten.
quelle