清理服务器空间的着手点

data codes through eyeglasses

有时竭尽全力给服务器上部署的服务瘦了身了,服务器的剩余空间还是只剩下百来M,甚至十几M。部署其上的服务还频繁报错,说:“动力不足。”

这种时候,说明问题已不出在服务本身了。可能需要从服务器的其他地方来入手,清理空间。

排查

不妨采取以下步骤排查问题:

  1. 检查数据库大小:有些服务的内容(如WordPress的文章、页面和评论,Friendica甚至会有媒体文件)都存储在数据库中。随着时间的推移,数据库可能变得非常大。可以使用phpMyAdmin或其他数据库管理工具查看数据库的大小。
  2. 其他文件和目录:确保查看服务器的其他目录和文件,特别是在服务器的主目录中,看看是否有其他大文件或目录。
  3. 邮件账户:如果服务器还托管电子邮件,那么邮件账户可能会使用大量的磁盘空间。
  4. 日志文件:服务器的日志文件有时会占用大量的空间。检查如 /var/log/ 这样的目录。
  5. 隐藏文件:确保查看所有的隐藏文件。例如,.backup.snapshot 这样的目录有时可能会包含自动备份,它们可能会非常大。
  6. 磁盘配额:查看是否设置了磁盘配额。有时,虽然物理磁盘有空间,但由于配额限制,您可能无法使用全部空间。
  7. 使用磁盘分析工具:使用如 du -sh *ncdu 这样的命令来分析服务器的磁盘使用情况,找出最大的文件和目录。
  8. 检查磁盘错误:有时,磁盘错误或文件系统问题可能会导致磁盘空间显示不正确。可以考虑运行文件系统检查工具。
  9. 联系主机提供商:如果使用的是托管服务,并且无法确定为什么空间不足,联系主机提供商以获取帮助。

清理系统日志

系统日志是一个明显的优化点。日志文件可以变得非常大,特别是如果有某个服务频繁地写入日志。应该检查这些日志,看看是否有任何不需要的日志,或者是否有某个服务产生了异常的日志数量。可以使用日志轮转工具(如logrotate)来自动管理和压缩日志。

一般来说,以下的日志有可能会变得较为庞大:

  1. journal: 这是有机会变得最大的单一日志,能够占用大量的空间。journal 通常与 systemd-journald 服务相关,该服务提供了系统日志功能。可以考虑限制其大小或清理旧的日志条目。使用 journalctl 命令可以管理这些日志。
    • 清理旧的日志:journalctl --vacuum-size=1G 将会保留最后1G的日志并删除其他。也可以把1G改成实际需要的任何大小,例如512M
    • 设置最大日志大小:编辑 /etc/systemd/journald.conf 文件,设置 SystemKeepFreeSystemKeepFree 参数来限制日志大小。这样做可以将前一条所做的大小限制持久化,一劳永逸。
      • 前往 /etc/systemd/journald.conf 文件,在其中设置 SystemMaxUseRuntimeMaxUse 参数。例如:
        SystemMaxUse=512M
        设置完毕后,需要重启 systemd-journald 服务来应用更改:
        sudo systemctl restart systemd-journald
        这样做将控制日志文件的大小,并防止它们占用过多的磁盘空间。
  2. syslog 和相关文件(如 kern.logdaemon.log): 这些文件也会占用了相对较大的空间。可以考虑使用 logrotate 来压缩、轮转和/或删除旧的日志。
  3. nginxApache和其他服务日志:随着时间的推移,它们可能会增长。特别是如果服务被大量访问,或者频繁出错,日志文件也会变到很大,可以G计。也可以考虑为这些日志设置轮转。

Discover more from 山月

Subscribe now to keep reading and get access to the full archive.

Continue reading