探讨如何统计Ruby应用服务器使用内存方法

Python023

探讨如何统计Ruby应用服务器使用内存方法,第1张

最近在解决探针获取Ruby应用服务器的内存使用的情况,将解决的思路总结一下,希望对此感兴趣的伙伴一起探讨。

先对比应用服务器: Puma 和 Passenger ,下面对比这2个服务器内存统计,

进程模式:直接获取进程id: Process.pid

cluster模式:以启动2个worker进程为例:

从上面截图可以看到,Puma启动后会出现3个进程:1个master进程和2个worker进程。

内存的使用情况(见 RSS 列):

而对于探针来说,一个探针实例是伴随进程一起启动的,也就说一个探针只能识别自己所在的进程id,那如何获取应用服务器使用的内存?我们用其中1个woker进程所在的进程组[ PGID ]看一下:(为啥不是父进程?, 见下文Passenger)

这3个进程都在相同的进程组里,而且进程组号为master的进程id,那我们就可以用这个信息获取应用服务器的所使用的内存:

4.累加进程组内进程内存和即为应用服务器使用内存:

启动Passenger后的Process信息:

对Passenger架构感兴趣的请移步到 这儿 .

查看一下worker所在进程组和父进程:

通过PPID可以看出

Passenger core —>Passenger AppPreloader —>Passenger RubyApp

三者为爷-父-子关系,当服务器请求量增大时 AppPreloader 会产生新的进程来响应请求,从而新的 RubyApp 进程的 PPID 即为 AppPreloader 的 PID ,这样看来就可以将同一个 PPID 的进程加起来得到应用服务器的内存?

由于Passenger会根据服务器的负载量动态调整进程数,当服务器请求量较小时,Passenger会kill多余的进程,会出现下面的情况:

AppPreloader 也被Passenger杀掉了。原 RubyApp 进程的 PPID 变成了1。这时如果服务器的请求量增大,应用服务器进程会成为这样:

Passenger core 产生新的 AppPreloader 进程,并且 AppPreloader 产生新的 RubyApp 进程,这时如果只用 PPID 统计应用服务器内存就会不准确,所以要统计Passenger的使用的内存还得通过累加在同一个进程组( PGID )的所有进程使用的内存和得到。

由于 Unicorn 和 Rainbows 都与Puma的cluster模式[master+worker模式]类似,内存统计的方式可以参考上文的Puma。

由于 Thin 启动多个server后没有类似的特点,上面方法不适用于Thin,有好方法的伙伴们可以告知:smile:

在解决探针统计应用服务器的内存问题上,摸索出了上面的一条路子,如果小伙伴们有其他更好的方式,可以一起探讨一下。

【导读】:口红是磨砂亚光的层次感,可是上嘴并不会拔干,膏状较为顺滑因此就非常容易拉开,一点也不必担心卡纹,非常非常最显白,黄皮肤仙女们闭上眼入的一款。它是一只非常美丽的红枫叶橘红色,超级无敌百分之百最显白,...

针对一个精美的妆面而言,口红具有了尤为重要的功效,要是没有口红的装点,再极致的妆面都是愕然暗淡。可是当有着一款又适合最显白的口红,全部人的面色都是有很大的不一样,会为诸位小仙女们精美极致的妆面上雪中送炭,烘托全部人更为风彩耀人。而口红知名品牌又分成不一样类型,口红颜色也是有十分多种多样,此刻选一款合适自身的口红就至关重要。

而如今将要入暑,去下半年的口红不论是颜色还是材质也不太合适炎炎夏日,夏季的口红还是追求完美净透当然的觉得更强。那接下去就为诸位小仙女们详细介绍

第一款:阿玛尼红管402

这支口红看色号便是夏季必需,颜色是略微偏橘调的苹果红,像苹果酱一样浓厚,肯定是苹果红里最高级别的一只。上嘴便是超级白,涂上你就是大街上最白的小公举,必被成千上万人追着要号色,黄皮肤的小仙女们一定一定要买的一个色号。尽管光亮但却不容易看起来莹光。涂薄是偏玫调的苹果红,有一种夏季小苹果的味道,厚涂便是暖调红,特别适合夏季的一个颜色。口红材质十分滋养,上嘴十分好拉开,不容易很乾,也不会显唇线。总而言之买起来就完了。

第二款:兰蔻196号色

夏天这类火爆又热情的气温里,这支口红肯定是幽会必需了。口红是磨砂亚光的层次感,可是上嘴并不会拔干,膏状较为顺滑因此就非常容易拉开,一点也不必担心卡纹,非常非常最显白,黄皮肤仙女们闭上眼入的一款。由于口红中带有碧玺成份,因此口红层次感非常好,上嘴觉得非常高级。涂薄是一种奶橘奶橘的觉得,厚涂便是惊艳胡萝卜色,不论是涂薄还是厚涂全是惊艳,真是是夏季里的必需口红,诸位小公举快买起来和深爱的男孩子约会吧。

第三款:Dior漆光口红758

它是一只非常美丽的红枫叶橘红色,超级无敌百分之百最显白,累加双层还会继续有番茄色的实际效果,番茄沙司的觉得,特别适合原气的仙女们,做夏季里净透女生。涂薄也有嘟嘟唇的实际效果,非常有夏季的觉得,厚涂便是很正的桔红色,十分漂亮,不论是白皮黄皮肤黑皮肤都hold住。尽管是款口红但一点也不黏,长久度也很好,用卫生纸抿过以后吃饭喝水都ok。总而言之这颜色真是惊艳,夏季必需,仍在迟疑什么?

第四款:MACladydanger

这款颜色是光亮的血橘色,红里透橙,橘里又十分最显白。是一款开朗美少女的颜色,涂上有点儿莹光,因此黄黑皮肤勿进,白皮的仙女们彻底不必担心啦,闭上眼入就行,会更为最显白,白上加白。比MAC的另一款rubywoo浅又比chili红,完全的平时号色,不论是工作还是念书都能够用。MAC的口红材质都偏干,因此搞好妆前保溼补水很重要哦。

第五款:CHANELcocoflash66号色

这只口红也是完全合适夏季的一只口红,涂薄是浅浅的偏暖的橘粉色,上嘴是十分当然的妆效,特别适合裸妆涂,厚涂更有原气,十分最显白,较为合适工作的情况下涂,原气仙子是你啦。彻底不挑肌肤,都能够涂哦。材质水亮,不持久却很滋养,关键靠颜色打造出透亮的觉得。也是夏季必需了。

五款夏季受欢迎口红号色,总会有一只合适美丽的你,快看来一下吧