阿里云运行Laravel项目导致磁盘 Inode 用满导致的故障解决办法
Song •
939 次浏览 •
0个评论 •
2021年08月25日
阿里云运行Laravel项目导致磁盘 Inode 用满导致的故障;Laravel storage缓存文件导致 Inode 出现failed to open stream: No space left on device
一、问题背景
在阿里云ubuntu
服务器上运行laravel
项目
二、发现问题
客户反应服务打不开;查看日志,发现有大量的failed to open stream: No space left on device
的错误。使用df -h
查看,磁盘还有 30G
空间,按道理不应该出现这个错误。
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 770M 692K 769M 1% /run
/dev/vda1 40G 5.9G 32G 16% /
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
tmpfs 770M 0 770M 0% /run/user/0
三、查找问题
磁盘空间明明还有,但提示空间不足。遂使用df -i
查看了一下inode
的使用情况。
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 977277 414 976863 1% /dev
tmpfs 984635 593 984042 1% /run
/dev/vda1 2621440 2621433 7 100% /
tmpfs 984635 2 984633 1% /dev/shm
tmpfs 984635 2 984633 1% /run/lock
tmpfs 984635 18 984617 1% /sys/fs/cgroup
tmpfs 984635 21 984614 1% /run/user/0
发现inode
已经用满了,从而导致系统无法创建文件。以至于系统抛出No space left on device
错误。
1、什么是inode
Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。
参考 理解inode
2、找到什么占用了inode
我们通过Liux
命令查询占用问题,查询当前目录下大于800M的文件
find . -type f -size +800M
一层层的查找最终到larave项目下找到storeage/framework/cache/data
目录下,发现存在大量的文件夹,里面存储的是大量的小文件(一个文件只有几 KB)。
这些大量的小文件并没有占用多少block
空间,却吧inode
空间占满了。
四、解决问题
停止nginx
、 php-fpm
,进入data
目录,执行:
rm -rf storeage/framework/cache/*
或者到项目下执行
php artisan cache:clear
删除过程应该时间比较长,没办法慢慢删吧。后续你需要监控inode
空间占用经常清理。
提交评论
请登录后评论
用户评论
当前暂无评价,快来发表您的观点吧...
更多相关好文
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
div添加contenteditable属性后如何禁用拖放和粘贴操作? 2023-02-01
热门文章
-
div添加contenteditable属性后如何禁用拖放和粘贴操作? 2023-02-01
-
[ laravel爬虫实战--进阶篇 ] guzzle实现多张图片上传 2023-01-14
-
moment获取本月/本周/本年/上月/上周、或者指定日期的第一天/最后一天 2022-12-23
-
jQuery 密码验证 字母加数字或符号的组合密码,不能单独使用数字、字母或字符及 常用正则 2022-12-13
-
jquery正则表达式验证(手机号、身份证号、中文名称、数字) 2022-12-13
ubuntu环境lnmp系统修改上传文件限制解决413 Request Entity Too Large