偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

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

  如何解決?

  一、定期重啟您的Ruby

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

  二、安裝此 killer:

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

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

  config/unicorn.rb

  1)worker_processes: 1x 計算核心

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

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

  四)認真考慮GC配置

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

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

2022-09-15 10:44:42

SidecarIstioeBPFizer

2023-02-06 07:37:29

Java編程語言

2011-01-07 10:18:28

RSSWeb

2011-05-11 09:01:29

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

2015-08-31 10:59:22

2012-02-20 10:12:09

Java

2014-01-06 09:36:53

IT部門BYODBYOA

2010-05-13 16:14:15

云計算

2013-01-31 17:23:20

RIM黑莓BB10

2024-09-03 09:31:59

2020-02-29 15:18:10

DevOpsNoOps運維

2020-02-19 11:35:21

iPhone越獲PP助手

2021-04-19 08:17:42

MesosKubernetesLinux

2025-06-12 04:00:00

SCMMRM內(nèi)存

2011-12-07 10:20:19

Email新聞

2021-01-19 10:58:15

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

2023-03-29 08:13:17

2019-12-10 13:01:08

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

2023-11-15 15:37:21

大模型人工智能

2020-12-15 10:40:14

CentOSRockyLinux
點贊
收藏

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