lat*_*atz 10 linux filesystems disk-space-utilization
在我们的一台服务器上执行了一些错误的 php 代码后,它试图打开一个不存在的文件,我们最终得到了巨大的 apache 日志文件,这些文件尚未配置为轮换。我们刚刚删除了那些日志文件。之后我们看到我们的磁盘并没有真正清理干净。df -h的输出显示以下内容
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 18G 16G 1.1G 94% /
udev 999M 12K 999M 1% /dev
tmpfs 403M 848K 402M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1007M 72K 1007M 1% /run/shm
/dev/mapper/vg_ftp-ftp 9.9G 5.3G 4.2G 56% /mnt/local/ftp
Run Code Online (Sandbox Code Playgroud)
索引节点似乎也可以
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 1168128 227009 941119 20% /
udev 215094 442 214652 1% /dev
tmpfs 219463 384 219079 1% /run
none 219463 6 219457 1% /run/lock
none 219463 3 219460 1% /run/shm
/dev/mapper/vg_ftp-ftp 655360 1553 653807 1% /mnt/local/ftp
Run Code Online (Sandbox Code Playgroud)
在用du和ncdu进行调查后,我们仍然找不到空间消失的地方。后来我们认为它是仍然存在的打开文件处理程序,所以我们做了lsof | grep 删除了它给了我们一些文件,包括/sbin/mountall这有点吓人。
mountall 287 root txt REG 8,1 120404 9334 /sbin/mountall (deleted)
mysqld 615 mysql 4u REG 8,1 0 416 /tmp/iba1fEnV (deleted)
mysqld 615 mysql 5u REG 8,1 0 899 /tmp/ibcxXlJG (deleted)
mysqld 615 mysql 6u REG 8,1 0 900 /tmp/ibdby44r (deleted)
mysqld 615 mysql 7u REG 8,1 0 901 /tmp/ibYaPXvd (deleted)
mysqld 615 mysql 11u REG 8,1 0 986 /tmp/ibS9XlvZ (deleted)
ntpd 1231 ntp 3r REG 8,1 481 1427 /etc/network/interfaces~ (deleted)
Run Code Online (Sandbox Code Playgroud)
我们正在努力避免重新启动。有没有人知道这可能来自哪里,或者我们可以检查什么来找到丢失的空间?
use*_*517 12
您删除的文件仍将打开,Apache 将写入其中。您将需要重新启动 Apache 以允许它创建一个新文件。优雅的重启应该可以解决问题
apachctl -k graceful
Run Code Online (Sandbox Code Playgroud)
或者
apache2ctl -k graceful
Run Code Online (Sandbox Code Playgroud)
或者你的发行版使用什么。