zoukankan      html  css  js  c++  java
  • 使用supervisor的一些注意事项

        一直都有在使用supervisor来管理linux上的服务进程。最近有同事说有某服务貌似有问题,让上去检查一下。上去以后发现某服务反应的确很慢,所以就用supervisor重启一下。但是重启的时候就发现问题了,平时一两秒就可以完成的操作,现在竟然要几分钟!这个非常的不科学,一定要查原因!
        最开始怀疑的是文件系统是不是出问题了,io会不会太高了。排除掉以后,就开始检查supervisor的进程,发现它的cpu很高。这时候就很奇怪了,其它服务器上的supervisor的cpu占用都很低的啊,为什么呢?然后就开始对比这两台机器上面supervisor所管理的进程有些什么不同。最后发现,有问题的机器上面,supervisor所管理的进程里面有好些进程有很大量很频繁的stdout输出(我们这里用的是tornado,默认的日志会输出到stdout)。当很多的进程都在同时输出大量的stdout的时候,supervisor就会疲于处理这些输出数据和记录日志,最终就会导致supervisor处理变慢。

        当我们调整了被管理程序的logger输出方式以后,supervisor马上就回复正常了。
        所以,在使用supervisor的时候,被管理的程序最好避免有大量很频繁的stdout或者stderr输出,否则管理就有可能出问题了。

  • 相关阅读:
    iOS crash 追终 ,iOS 如何定位crash 位置
    ios 性能优化策略
    如何提升代码编译的速度 iOS
    关于iOS的runtime
    iOS __block 与 __weak
    spring-boot-framework 如何自动将对象返回成json格式
    spring-boot 热部署 intellij IDE(开发过程)
    MAVEN中的插件放在哪个dependcies里面
    css3 RGBA
    css3 loading 效果3
  • 原文地址:https://www.cnblogs.com/firemeteorx/p/4390680.html
Copyright © 2011-2022 走看看