生产环境下案例 No space left on device (inode使用满的情况)
第一种情况:
问题:
如果想磁盘写入数据提示如下错误:
No space left on device。
通过df -h查看磁盘空间,发现没满,请问可能原因是什么?
解答:
可能是inode数量被消耗尽了。
df -i查看是否耗尽了inode数量。
企业工作中邮件临时队列/var/spool/clientmquene这里很容易被大量小文件占满导致No space left on device的错误。
clientmquene目录只有安装了sendmail服务才会有。CentOS5.X默认会装sendmial,CentOS6.5默认没有sendmail。
知识点:
CentOS5系列的系统会默认安装Sendmail服务,因此邮件临时存放地点的路径/var/spool/clientmqueue/。
CentOS6默认情况下没有安装Sendmail服务,而是安装了Postfix服务,因此邮件存放地点的路径为/var/postfix/maildrop/。
以上两个目录很容易被垃圾文件填满导致系统的inode数量不够用,从而导致无法放文件。
当定时任务执行结尾不加>/dev/null 2>&1的时候,定时任务就会把上述目录就会存在大量小文件
环境模拟
创建定时任务不加>/dev/null 2>&1
[root@-tab scripts]# crontab -e no crontab for root - using an empty one * * * * * /bin/sh /server/scripts/backupservice.sh * * * * * /bin/sh /server/scripts/backupservice.sh * * * * * /bin/sh /server/scripts/backupservice.sh * * * * * /bin/sh /server/scripts/backupservice.sh * * * * * /bin/sh /server/scripts/backupservice.sh
查看postfix服务是否开启
root@-tab scripts]# lsof -i : COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME master root 12u IPv4 0t0 TCP localhost:smtp (LISTEN) master root 13u IPv6 0t0 TCP localhost:smtp (LISTEN)
postfix服务是否开启状态下查看/var/spool/postfix/maildrop/目录
[root@-tab scripts]# ls /var/spool/postfix/maildrop/
停止postfix查看/var/spool/postfix/maildrop/目录
[root@-tab scripts]# /etc/init.d/postfix stop Shutting down postfix: [ OK ] You have new mail in /var/spool/mail/root [root@-tab scripts]# lsof -i : [root@-tab scripts]# ls /var/spool/postfix/maildrop/
1C8D040005B 2DCF5400488 4F7D440048C 68B1B4004B3 80EC34004D2 A043B4004E2 C1AC84004F5 D4EA8400504
1D602400462 2F4A3400489 563A4400498 69FEE4004BC 854444004D3 AB8984004E7 C32434004F6 E61E2400506
22C4F40047D 331E740048A 58D0A4004A2 759A94004BD 85BA04004D4 ABC024004F0 C48944004F7 E6252400507
2742040047E 3C7D040048B 5AF094004A3 75C614004BE 8689B4004D5 B17FB4004E3 C9A164004FC E62E6400508
277C640047F 409C940048D 5C5AD4004AA 75F914004BF 8B4174004D8 B62834004F1 D26974004FD E6338400505
2906D400480 4494640048E 5C9954004AB 789CC4004C8 8E54C4004D9 BD0DB4004F2 D27204004FE E63F0400509
2B73B400485 46DDE400495 5D4604004AF 7ADD24004C9 92B494004DE BE1314004F3 D278B400500 EBB0240050B
2D3E3400486 4D385400496 5F86B4004B2 7DF3C4004CC 9C59D4004A9 BE60C4004E6 D2879400501 EBB8340050A
2D694400487 4E755400497 652644004A8 7F44E4004CD A03254004DF C04B94004F4 D46EA400503 F20AA40050
详细解决办法:/var/spool/clientmqueue 下生成太多文件处理
拓展:
一个100M(block的总大小,个数和单个block大小有关)的磁盘分区,分别写入0.5K的文件或写入1 M的文件,分别可以写多少个?为什么?
解答:
- 默认分区常规情况下,对大文件来讲inode是足够的。而block数量会消耗得更快,block为4K的情况,1M的文件不会有磁盘浪费情况,所以文件数量大概为100/1=100个。
- 对于小文件0.5K,inode会消耗得更快。默认分区的时候block数量是大于inode数量的。 每个小文件都会占用一个inode和一个block。所以最终文件的数量是inode会消耗完,文件总量是inode的数量。
知识点:
- inode是存放文件属性信息的(也包含指向文件实体的指针),默认大小128字节(C5),256字节(C6)。
- block是存放文件实际内容的,默认大小1K(boot)或4K(非系统分区)。
- 一个文件至少要占用一个inode及一个block。
- 默认分区常规情况下,inode数量是足够的。而block数量会消耗得更快。
生产环境下案例 No space left on device (inode使用满的情况)的更多相关文章
- 四步法分析定位生产环境下MySQL上千条SQL中的问题所在
第一步:通过以下两种方式之一来打开慢查询功能 (1)方式一:通过修改mysql的my.cnf文件 如果是5.0或5.1等版本需要增加以下选项: log-slow-queries="mysql ...
- Python开发程序:生产环境下实时统计网站访问日志信息
日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他 ...
- 生产环境下一定要开启mysqlbinlog
在没有备份数据库的情况下,可以用binlog进行恢复 在生产环境下安全第一,损失一点点效率换来的安全还是值得的. http://www.cnblogs.com/zc22/archive/2013/06 ...
- mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法
mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法 满头大汗的宅鸟该怎么办呢? mysql -u root -e "show processlist"|grep -i ...
- Mysql迁移工具在生产环境下的使用
在产品迭代开发发布过程中,由于业务需求的增加,数据库难免会有结构调整等操作. 在每个版本发布过程中怎么控制每个版本server端程序与数据库版本保持一致,以及数 据库升级.回滚等操作. 本博文宅鸟将向 ...
- [原]生产环境下的nginx.conf配置文件(多虚拟主机)
[原]生产环境下的nginx.conf配置文件(多虚拟主机) 2013-12-27阅读110 评论0 我的生产环境下的nginx.conf配置文件,做了虚拟主机设置的,大家可以根据需求更改,下载即可在 ...
- 生产环境下JAVA进程高CPU占用故障排查
问题描述:生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高. 问题分析:1,程序属于CPU密集型,和开发沟通过, ...
- 一次生产环境下MongoDB备份还原数据
最近开发一个版本的功能当中用到了MongoDB分页,懒于造数据,于是就研究了下从生产环境上导出数据到本地来进行测试. 研究了一下,发现MongoDB的备份还原和MySQL语法还挺类似,下面请看详细介绍 ...
- centos7生产环境下openssh升级
由于生产环境ssh版本太低,导致使用安全软件扫描时提示系统处于异常不安全的状态,主要原因是ssh漏洞.推荐通过升级ssh版本修复漏洞 因为是生产环境,所以有很多问题需要注意.为了保险起见,在生产环境下 ...
随机推荐
- css3 border-radius
前缀对应浏览器 前缀 浏览器 -webkit chrome和safari -moz firefox -ms IE -o opera border-radius: <style type=&quo ...
- hdu-5127------hdu5137
hdu-5127 思路: 本来正解好像是动态凸包,暴力10000+ms可以搞过去; hdu-5128 思路: 枚举两个长方形的对角线,然后判断是否不相交,更新答案就好; hdu-5130 思路: 将题 ...
- sql索引的填充因子多少最好,填充因子的作用?
当创建一个新索引,或重建一个存在的索引时,你可以指定一个填充因子,它是在索引创建时索引里的数据页被填充的数量.填充因子设置为100意味着每个索引页100%填满,50%意味着每个索引页50%填满. 如果 ...
- UIScrollView 滑动复位
需求 在每次打开界面滑动列表都是复位状态(未滑动). 分析 在制作滑动列表时常常会结合UIPanel和UIScrollView 要让滑动列表回到未滑动时的位置,那么就需要改变Panel的Clippin ...
- java 26 - 7 网络编程之 TCP协议代码优化
上次所写的代码中,客户端和服务器端所进行的数据传输所用的是字节流. 优化: A:这次,为了高效,对这个字节流通过转换流来进行包装,包装成高效字符流. B:这次,传输的数据是通过键盘录入的数据. 服务器 ...
- kali开启ssh
Kali 2.0安装之后需要做的事--使用SSH进行远程登录 2015年8月11日,Kali官方推出了新的kali系统2.0版本,此次升级最大的特点就是系统界面的设计理念更加先进,以及系统的升级方 ...
- Android终端配置isatap隧道使用IPV6的方法
使用isatap隧道可以在手机有IPV4网络的情况下访问IPv6网络资源.关于isatap隧道的配置方法,清华.上交两所学校都给出了相应的在windows xp/2003,windows 2000,以 ...
- 字典转换成NSString(NSJson)
//字典转换成字符串 NSDictionary *dict = [NSMutableDictionary dictionary]; NSData *data = [NSJSONSerializatio ...
- PhpExcel中文帮助手册|PhpExcel使用方法
下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...
- X200s,Debian 8(Jessie) 安装流水帐
1. U盘启动安装 a. 因为无线网卡驱动是non-free,需要另外下载,对应X200s,文件是iwlwifi-5000-5.ucode,下完放到安装U盘的根目录下,安装时就不会再提示而是直接安装 ...