lsphp 状态:设备上没有剩余空间,但服务器上有足够的可用空间

lsphp 状态:设备上没有剩余空间,但服务器上有足够的可用空间

我安装了带有 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_countdumpe2fs -h | grep ^Block\ sizeecho $((100*1024*1024/4096))

    请注意,您可能想将此计数设置为 0,但这样做是不明智的:保留是有原因的:当系统没有可用空间时,它为管理员移动东西或临时保存东西提供了一些回旋余地。

  • 一些 Linux 文件系统支持每个用户配额。
    您可能就遇到了这种情况。

  • 您可能会面临可用磁盘空间的“自然”波动。

    例如,日志轮换通常设置为每天运行一次。因此,正在运行的程序可能会连续几个小时记录内容——自然会增加日志量并减少可用空间。然后进行日志轮换,压缩日志,删除旧日志,然后可用空间恢复正常。然后重复此循环。
    有时记录的内容比平时多,可用空间降至零。

    可能存在其他自然原因。例如,为了处理典型的文件上传,Web 服务器通常会在文件系统上创建一个临时文件,然后将字节从客户端传输到该文件;客户端完成后,文件将倒回到开头并进行解析。
    如果有许多客户端进行此类上传,则可用空间可能会被耗尽。
    如果出于某种原因,服务器软件编写得非常糟糕,以至于在请求过早终止时会留下这样的临时文件,则此类文件可能会堆积起来。
    如果存在一些定期运行的收割机脚本,这可能解释了为什么有时没有可用空间,有时又恢复正常。

正如您所猜测的,任何此类活动(某物堆积起来然后被清理干净)都可能解释观察到的行为。

至于该怎么做……
如果你找不到一些“明显”的原因,那么一个持续运行的会计工具,比如令人尊敬的atop可能会派上用场;它通常适用于任何合理的基于 Linux 的操作系统。
基本上,它运行一个守护进程,该守护进程定期转储一组有关系统参数的统计数据,然后允许管理员根据这些日志检查系统的行为方式。

相关内容