Nospaceleftondevice看到这个错误,第一个反应是磁盘空间满了;但df一看,每个分区的空360问答间都还富余的很。从munin的监控图表上看Filesystemu备映课指足便率少sage也很平稳刑物,但下面的Inodeusage就有问题了,其中一个分区的usage已经到了100%。赶紧跑到服务器上df-i检查,果然是Inode耗尽。原来这个分区是用来扔各种日志和临时文件的,其中有某个程序产生的临时文件又小又多,又没有进行定时回滚,造成在磁盘空间耗尽之前文件系统的Inode就被用光了。Linux/供给高践吗们杀UnixlikeOS的文件院接系统中每个目录树中的节点并不是像Windows那样直接包含文件的具体信息弦护试电进并财,而只包含了文件名和华友Inodenumber。通过Inodenumber所找到对应于文件名的Inode节点中才真正记录了文件的大小/物理地址/所有者/访问权限/时间戳独料困/被硬链接的次数等实际的metadata。因此你可以在Lin抓投ux系统中通过硬链接(hardlink)的方式给某个文件创建无数个位于不同目录下的文件名,而实际的文件数据只需要一份拷贝。但也正因为这种文件系统的结构,当你在Linux中进溶相带耐严化值白垂必行IO操作的时候能则带问稳冲群领界价说,需要的资源除了磁武坚选裂盘空间以外,还要有剩余的Inode才行。缺省情况下,Linux在系统安装过程中按照1个Inode对应2k磁盘空间来计算每个分区的最大Inode数。一旦文件系统创建之后,每个分区可用Inode数就无法进行动态调整。正常来说,一般不太会出现某个分区的Inode耗尽而磁盘空间尚余的情况,除非像我碰到的这样垃圾小文件疯长而又没进行有效的清理。但如果确实需要的话,可以在创光论处战内建文件系统(比如用mke2f令鸡粮压来当结面广种于s)的时候根据实际需要来调整这个参数(比如分区如果用于存放超大视频文件的话Inode的数量可以少一些;如果打算存放的文件是大量小于2k的迷你文件的话就要考虑多创建一些Inode经为首远古血模面)。取消息队列时,报错Nospaceleftondevicesysctl-w***.msgmni=128
就是这个东东,MSGMNI---这个参数决定了系统中同时运行的顺最大的messagequeue的个数在root下用sysctl院表西包式安乐来握粒游***.msgmni检查阿责煤氧北村培医溶攻停该参数,sysctl-w***.msgmni=XXX重新设定即可。