zoukankan      html  css  js  c++  java
  • 关于日志造成的频繁的IO

    记录日志可能消耗大量的IO 

    【Q】 

    每次写入都是一个IO操作 即使是同一个文件 两次写入也要打开两次IO操作

    【F】

       设想有这样一个扩展  把php中要记录的日志 用文件名 和 内容的方式记录在内存中 然后这一个php进程结束时候 统一把内存中存储的日志写入日志文件

    假如 一次php运行 对a.file 写入3次 b.file 写入2次 c.file 写入一次 

      普通的写入方式 总共进行 6次IO操作

      采用设想的方法 3次IO操作 

    【Q】

    这种方式只会影响 多次写入统一文件的IO操作 如果日志只会对每个文件写入一次 不会减少IO操作

    【F】

     但如果再假设 先把文件名 和 日志内容 都先记录到同一个文件的话 然后在空闲时候再利用程序分割(或者就直接存储在这个文件用)这样就能保证一次php运行只进行一次日志的IO操作 

       这段时间只进行了一次IO操作 可以减少大量IO操作

    如果后期想再分割这个文件的话 可以在服务器空闲时期分割  至少能均衡服务器的负担

    PHP扩展wlog  github地址  https://github.com/china8036/wlog

  • 相关阅读:
    面经-新浪
    面经-中兴
    面经-趋势科技
    面经-酷家乐
    面经-大华
    面经-明略科技
    面经-小米
    面经-虹软
    coroutine
    Coroutine 终止协程和异常处理
  • 原文地址:https://www.cnblogs.com/china8036/p/4673993.html
Copyright © 2011-2022 走看看