webman,内存监控能否优化

evilk

问题描述

  1. 目前已经通过监控进程内存大小来实现内存监控,内存大小设置为32M
    但业务中发现有些进程会需要比较大的内存,而有些进程则不需要,这就会导致有些进程会频繁重启

    为此你搜索到了哪些方案及不适用的原因

  2. 调整配置大小,调整为128M
  3. 能否恢复到通过max_request来监控内存
  4. max_request 和 内存 两种方案,各有什么优缺点呢?
521 1 0
1个回答

walkor

相比max_request 监控进程内存大小是最优方案,避免没有意义的重启,能够有效控制所有进程占用总内存。
max_request 可能会导致内存占用已经很高但是没有达到重启条件导致内存耗尽

  • evilk 2024-02-04

    明白
    但我们现在遇到的问题是
    有些业务进程需要比较大的内存,但有些进程,比如消费者进程又不需要那么大的内存
    但现在的配置是统一所有的进程,如果可以按照进程类型来配置大小的话,这样会不会更好呢

  • nitron 2024-02-04

    你把内存设置高点不代表一开始就会分配那么高的内存,算是一个阈值而已

  • evilk 2024-02-04

    我明白算是一个阈值
    但如果可以为不同进程,设置不同的阈值,这样可能会更加灵活一点
    比如业务进程,可以设置128M
    消费者可以设置为64M

  • walkor 2024-02-04

    你可以自己实现max_request,就一个计数,然后调用Worker::stopAll()

  • evilk 2024-02-04

    谢谢
    可以分享一些片段或者思路供参考吗?

🔝