zoukankan      html  css  js  c++  java
  • 记录一次很有意思的bug

    情景是这样的:

     log 一直在狂打不止,直到打满了磁盘, 在上传文件的时候发现只要是超过了1m就传不上去。

    解决策略 

      首先肯定是清除磁盘 干掉无用的log,清除了之后发现问题并没有解决,于是使用top命令查看内存使用情况 发现内存使用并不高,于是这个问题就很有意思了。

    有如下几种猜测:

    1.程序内存泄漏 导致内存无法有效回收 

      经过重启,仔细查看每个进程的内存情况发现 并非这种情况。

    2.依稀记得linux文件目录有大小限制  翻阅大量文档发现大小制约的其实是Inode ,只有在大量的小文件的写入时候才会出现限制。

      参考连接:http://www.ruanyifeng.com/blog/2011/12/inode.html

    在经过1.2两步试错之后 发现自己可能走偏了。首先只有大小超过一定的限制之后才会无法写入,其次 程序刚开始运行没问题的。这些特征更像是触发了某种内存保护机制。

    是虚拟机的参数的设置吗?

    一连串的碰壁之后 幡然醒悟。 如果是虚拟机参数的设置,那么应该是在刚开始就有限制,在momery和磁盘都还未满的情况下,虚拟机应该有自动扩容的功能,不至于限制1m左右文件大小的读写。

    那么就是linux本身了。

    3.经过排查分析,发现linux经过内存满的时候会触发读写保护机制,当内存恢复的时候,保护机制并不会撤销。因此问题得解。

    哈哈哈,这可能不算linux的bug 算是featrue 。

    参考连接:http://www.it1352.com/764980.html

  • 相关阅读:
    html文本超出自动换行、显示省略号
    angular第三天
    angular第二天
    angular第一天
    jQuery基础:keydown( ) 与 keypress( ) 区别
    jQuery基础:mouseeter( ) 与 mouseover( ) 区别
    jQuery基础:remove()与 detach()区别
    jQuery基础:获取元素内容
    (一)数组或对象中最会一个属性是否该加逗号的测试
    jQuery基础:prop()与attr()的区别
  • 原文地址:https://www.cnblogs.com/zslzz/p/8439563.html
Copyright © 2011-2022 走看看