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

  • 相关阅读:
    商品尺码规格和颜色需要支持双引号
    php xss 函数
    yar 调用rpc方法
    【转】Linux常用命令大全
    【Netty】最透彻的Netty原理架构解析
    【Git项目管理】分布式 Git
    【SpringBoot】几种定时任务的实现方式
    【Elasticsearch-Java】Java客户端搭建
    【Git项目管理】Git分支
    【Git项目管理】git新手入门——基础教程
  • 原文地址:https://www.cnblogs.com/zslzz/p/8439563.html
Copyright © 2011-2022 走看看