我安装了带有 openlitespeed 和 wordpress 的 debian 服务器。
我经常收到 503 错误;当我检查日志时,我看到以下内容:
ERROR [lsphp]: Failed to listen socket [/tmp/lshttpd/lsphp.sock]: No space left on device
WARN [uds://tmp/lshttpd/lsphp.sock] Can not start this external application.
然而,我检查时还剩下很多空间:
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 395M 628K 394M 1% /run
/dev/vda1 78G 6.7G 71G 9% /
tmpfs 2.0G 1.2M 2.0G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda15 105M 3.6M 101M 4% /boot/efi
/dev/loop0 1.5G 25M 1.3G 2% /tmp
tmpfs 395M 0 395M 0% /run/user/0
任何帮助,将不胜感激。
谢谢,
答案1
需要检查的几个想法(随机顺序):
通常,在基于 Linux 的操作系统的“本机”文件系统上,会为超级用户 (
root
) 保留一定量的可用空间。
在 Debian(以及 Ubuntu 等“Debianoids”)上,安装程序通常会在每个设备上为此保留 5% 的可用空间。在 1 GiB 的时代,这是合理的,但现在这意味着相当多的空间。您可以使用专用工具(例如文件系统)来更改这一点。接受该选项,因此要
tune2fs
为根保留 100 MiB,您需要知道块大小(通常为 4096),然后执行并在调用中使用生成的块数。extN
tune2fs
-r reserved_blocks_count
dumpe2fs -h | grep ^Block\ size
echo $((100*1024*1024/4096))
请注意,您可能想将此计数设置为 0,但这样做是不明智的:保留是有原因的:当系统没有可用空间时,它为管理员移动东西或临时保存东西提供了一些回旋余地。
一些 Linux 文件系统支持每个用户配额。
您可能就遇到了这种情况。您可能会面临可用磁盘空间的“自然”波动。
例如,日志轮换通常设置为每天运行一次。因此,正在运行的程序可能会连续几个小时记录内容——自然会增加日志量并减少可用空间。然后进行日志轮换,压缩日志,删除旧日志,然后可用空间恢复正常。然后重复此循环。
有时记录的内容比平时多,可用空间降至零。可能存在其他自然原因。例如,为了处理典型的文件上传,Web 服务器通常会在文件系统上创建一个临时文件,然后将字节从客户端传输到该文件;客户端完成后,文件将倒回到开头并进行解析。
如果有许多客户端进行此类上传,则可用空间可能会被耗尽。
如果出于某种原因,服务器软件编写得非常糟糕,以至于在请求过早终止时会留下这样的临时文件,则此类文件可能会堆积起来。
如果存在一些定期运行的收割机脚本,这可能解释了为什么有时没有可用空间,有时又恢复正常。
正如您所猜测的,任何此类活动(某物堆积起来然后被清理干净)都可能解释观察到的行为。
至于该怎么做……
如果你找不到一些“明显”的原因,那么一个持续运行的会计工具,比如令人尊敬的atop
可能会派上用场;它通常适用于任何合理的基于 Linux 的操作系统。
基本上,它运行一个守护进程,该守护进程定期转储一组有关系统参数的统计数据,然后允许管理员根据这些日志检查系统的行为方式。