自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Ruby已死——必須關(guān)注的內(nèi)存問題

譯文
運(yùn)維 服務(wù)器運(yùn)維
如果大家使用的是高人氣Unicorn Web服務(wù)器,那么內(nèi)存問題可能會(huì)更加嚴(yán)重——這是因?yàn)閁nicorn采用fork機(jī)制。在fork過程中,其會(huì)對(duì)全部父內(nèi)存內(nèi)容進(jìn)行復(fù)制(簡(jiǎn)稱CoW)。

   在今天的文章中,我們將探討如何解決Ruby當(dāng)中常見的內(nèi)存使用問題。

  Ruby語言當(dāng)中最為常見的就是內(nèi)存使用問題,這一點(diǎn)在其它基于JVM的語言中亦頗為普遍(是的,Java,說的就是你)。事實(shí)上,Ruby的垃圾回收(簡(jiǎn)稱GC)機(jī)制與Java非常接近。如果使用不當(dāng),其會(huì)帶來巨大的麻煩(正如下圖所示)。在這類情況下,GC會(huì)停止運(yùn)作,同時(shí)消耗服務(wù)器的整體CPU資源,甚至導(dǎo)致服務(wù)器重啟。

  Unicorn與Ruby內(nèi)存泄露導(dǎo)致服務(wù)器宕機(jī)。

  如何解決?

  一、定期重啟您的Ruby

  如果大家使用的是高人氣Unicorn Web服務(wù)器,那么內(nèi)存問題可能會(huì)更加嚴(yán)重——這是因?yàn)閁nicorn采用fork機(jī)制。在fork過程中,其會(huì)對(duì)全部父內(nèi)存內(nèi)容進(jìn)行復(fù)制(簡(jiǎn)稱CoW)。因此,大家可能需要使用“Unicorn Worker Killer” gem以監(jiān)控服務(wù)器并在內(nèi)存達(dá)到新高點(diǎn)或者請(qǐng)求數(shù)量增加至一定水平時(shí)進(jìn)行重啟。由于該gem支持隨機(jī)化,因此服務(wù)器本身很可能并不會(huì)受到影響。

  二、安裝此 killer:

  、調(diào)整內(nèi)存

  如果大家使用的是Ruby 2.X版本,則可通過配置Unicorn更好地使用CoW機(jī)制。

  config/unicorn.rb

  1)worker_processes: 1x 計(jì)算核心

  2)timeout: 工作請(qǐng)求超時(shí),應(yīng)設(shè)定在15到30秒?yún)^(qū)間

  3)preload_app: 啟用CoW,但要求在fork上管理連接/斷開

  四)認(rèn)真考慮GC配置

  總結(jié):動(dòng)態(tài)語言存在著一定短板,然而正確的設(shè)計(jì)卻能幫助其始終在線且順暢運(yùn)行。

責(zé)任編輯:張誠 來源: 51CTO
相關(guān)推薦

2011-05-11 09:01:29

面向?qū)ο蠹夹g(shù)函數(shù)式語言

2011-01-07 10:18:28

RSSWeb

2023-02-06 07:37:29

Java編程語言

2022-09-15 10:44:42

SidecarIstioeBPFizer

2015-08-31 10:59:22

2014-01-06 09:36:53

IT部門BYODBYOA

2012-02-20 10:12:09

Java

2021-01-19 10:58:15

漏洞管理漏洞數(shù)據(jù)泄露

2011-12-07 10:20:19

Email新聞

2023-03-29 08:13:17

2010-05-13 16:14:15

云計(jì)算

2013-01-31 17:23:20

RIM黑莓BB10

2021-04-19 08:17:42

MesosKubernetesLinux

2020-02-29 15:18:10

DevOpsNoOps運(yùn)維

2024-09-03 09:31:59

2020-02-19 11:35:21

iPhone越獲PP助手

2023-11-15 15:37:21

大模型人工智能

2020-12-15 10:40:14

CentOSRockyLinux

2019-12-10 13:01:08

安全網(wǎng)絡(luò)風(fēng)險(xiǎn)數(shù)據(jù)

2021-04-27 06:32:23

ERP中臺(tái)代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)