並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 350件

新着順 人気順

OOMの検索結果1 - 40 件 / 350件

  • はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話 - Hatena Developer Blog

    はてなブログでSREをやっているid:cohalzです。 2019年12月頃からid:utgwkkやid:onkとともに、はてなブログにおけるキャッシュ周りの改善を行いました。その結果、次のような成果が得られました。 ブログ記事のキャッシュヒット率が、1日平均で8%から58%に向上 アプリケーションサーバの台数を、以前の半数以下に削減 DBに届くリクエスト数が、以前の3分の2まで減少 レスポンスタイムの平均が、以前の8割まで減少 この記事では、実際にどういった改善を行ったのか、その際に気をつけたことや大変だったことを紹介します。 はてなブログがVarnishを導入した経緯と課題 開発合宿をきっかけに問題が明らかになる 進め方をまず考える ホストのメモリをできるだけたくさん利用する メモリを積んだホストでなぜかレイテンシが悪化 キャッシュが分散しないようVaryヘッダを使う デバイス情報を適

      はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話 - Hatena Developer Blog
    • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

      NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を

      • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

        こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する知識が以前よりも増えた今もう一度書き直したいなと思いました。 なので今回はバッチ処理を書く時のテクニック2022版という感じです。今の仕事の関係でMySQLやrailsを前提にしている話が多いですが、おそらく他のデータベースを使っている人にも役に立つ話が多いのではないかと思います。ただ、今回の記事は経験に基づくものが多く、あまりよくないアイデアもあるかもしれません。改善点や間違いなどあればご指摘ください。 冪等性を持つように 冪等性とは端的に言えばある操作を複数回実行しても一回しか実行しなかった時と同じ結果になる性質の事です。長時間かか

          データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
        • 大規模システムでの Linux のメモリ管理

          (This post is also available in English.) この記事は Linux memory management at scale を 著者の Chris Down さんの許可 を得て Hiroaki Nakamura が日本語に翻訳したものです。 原文のライセンス は CC BY-SA 4.0 であり、翻訳のライセンスも同じく CC BY 4.0 とします。 cgroup2 プロジェクトでの私の仕事の一部として Linux システムのリソース管理についてエンジニアと話すことに多くの時間をかけてきました。 これらの会話を通じてどんどん明らかになってきた 1 つの事実は多くのエンジニアは、シニア SRE たちでさえも、 Linux のメモリ管理についていくつかのよくある誤解を持っていて、そしてそれが彼らがサポートするサービスやシステムが本来確実に稼働したり効率的

            大規模システムでの Linux のメモリ管理
          • スワップの弁護:よくある誤解を解く

            (This post is also available in English.) この記事は In defence of swap: common misconceptions を 著者の Chris Down さんの許可 を得て Hiroaki Nakamura が日本語に翻訳したものです。 原文のライセンス は CC BY-SA 4.0 であり、翻訳のライセンスも同じく CC BY 4.0 とします。 長文を読みたくない方への要約: スワップを持つことは正しく機能するシステムのかなり重要なポイントです。 スワップが無ければ、まともなメモリ管理を実現することは難しくなります。 スワップは一般的に緊急事態用のメモリを取得するためのものではなく、メモリの回収を平等に効率的に行うためのものです。 実のところ「緊急事態用のメモリ」は一般的に盛大に悪影響を及ぼします。 スワップを無効にすることは

              スワップの弁護:よくある誤解を解く
            • BPF Performance Toolsを読んだ感想 - go_vargoのブログ

              BPF Performance Toolsを読んだので、感想ブログです。 先に感想を言っておくと「最高」でした。 BPF Performance Toolsとは? NetflixでKernel・パフォーマンスにかかわるチューニング・アーキテクチャを専門にしているBrendan Greggさんが書いた本です。BPFのiovisorというTracing分野の第一人者でもあります。 www.brendangregg.com 2019年12月に発売したばかりなので、BPFの分野では最新の本でしょう。他の著書に有名な本として(日本語版の)「詳解システム・パフォーマンス」があります。 BPF Performance Toolsは「詳解システム・パフォーマンス」第二弾と言えるかもしれません。ちなみにページ数は880Pあり、Kindleで表示される読み終わるための平均的な時間は「27時間30分」で、大作R

                BPF Performance Toolsを読んだ感想 - go_vargoのブログ
              • JVMのヒープサイズとコンテナ時代のチューニング | Folioscope

                最近 JVM のヒープ領域とパラメータ、そしてコンテナの関係について調べてました。 案外まとまった情報が少なかったので簡単にまとめました。 Java のヒープサイズを設定 まずは Java のヒープサイズについて簡単なおさらいです。 本番環境で Java アプリケーションを運用する上で、JVM のヒープサイズを決定するのは非常に大事なポイントです。 ヒープ領域の最大サイズを大きくすればガベージコレクション (GC) の回数は減らすことができますが、 必要以上に大きくしすぎると無駄にリソースを消費したり、OOM killer で OS にプロセスを終了させられます。 JVM が使用できるヒープサイズは、Java API の Runtime.getRuntime().maxMemory() で確認できます。 また java の起動オプションに -XX:+PrintFlagsFinal オプショ

                • JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】

                  ヌーラボでScalaを書くRubyistの谷本です。ヌーラボでは、Backlogの開発を担当しており、最近ではBacklogをJavaからScala / Play Frameworkに移行するプロジェクトのメンバーでした。 BacklogのPlay化プロジェクトでは、OutOfMemorryError(以下、OOM)の発生やCPU使用率とロードアベレージが上がったままという、Java Virtual Machine(以下、JVM)上で動くBacklogのパフォーマンスに関する問題に対処すべく、何度かHeap/Thread dumpを見る機会がありました。 私がPlay化プロジェクトで取り組んだパフォーマンス改善の知見や経験をもとに、本記事では「JVMで起こったパフォーマンスの問題の切り分け方」についてお届けします。 はじめに 本番環境でしばらく動かしていると、コード自体は正しく実行できるけ

                    JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】
                  • Amazon SQS を使ったアプリケーションを本番で運用する際に考慮すべき基本的な 5 つのこと

                    Amazon SQS は可用性やスケーラビリティの高いメッセジキューサービスであり、AWS の代表的なサービスの 1 つと言えるでしょう。ところが、本番の運用に耐えられるアプリケーションにしようと思うと考えることが意外に多いものです。本エントリーでは簡単なサンプルアプリケーションをベースに、本番で運用するために考慮すべき点・注意点について見ていきます。題材として扱うのが SQS なだけで、SQS 以外を使ったアプリケーションにも応用できる内容もあるでしょう。 なお、SQS には Standard queue と FIFO queue がありますが、Standard queue を使う前提とします。 アジェンダは次のとおりです。 サンプルアプリケーション 1. ログ 2. At-least-once delivery と visibility timeout 3. デプロイ 4. 異常系 5

                      Amazon SQS を使ったアプリケーションを本番で運用する際に考慮すべき基本的な 5 つのこと
                    • グーグルが普及する前、みんな何使ってた?

                      グーグルが普及する前、みんな何使ってた?2020.08.01 11:0026,182 Daniel Kolitz - Gizmodo US [原文] ( Rina Fukazu ) 今でこそ、たいていのことは「ググればわかる」時代だけど...。 1997年、最近お気に入りの映画『オースティン・パワーズ』のことを友達にアツ〜く語るあなた。すると友達は「ランディ・クエイドが最高だった」と一言。あなたの頭のなかでは「あれ? 」と戸惑いつつ、話を聞いていたら友達がクリント・ハワードのことを言っていることに気づく。友達にそう伝えてみるも、お互い納得しあえず...。一日モヤモヤしつつ、家に帰ってパソコンを立ち上げてから40分ほど経過...「やっぱり、ランディ・クエイドは出演してないよ!」 2020年、Google(グーグル)が広く使われる前の時代、人々はどのようにして日常の疑問を解決したり、情報収集し

                        グーグルが普及する前、みんな何使ってた?
                      • 監視の考え方 〜あるいは可観測性とはなんなのか〜 - estie inside blog

                        みなさん、監視作ってますか? システムを作ったら、そのシステムを監視していく必要がありますよね。どうやったら「いい監視」が作れるのでしょうか。「いい監視」とそうでない監視との違いとは、いったいなんでしょうか。 今の時代、「監視」ではなくて「可観測性」、 Observability (o11y) の時代になっていて、良いプラクティスや考え方が色々とあります。 この記事は、監視や o11y についての考え方を社内に共有するため書いたものを、社外共有用に調整し直したものです。新しい Observability の時代を、一緒に生きていきましょう。 監視を作ろう あなたはシステムを作りました。そのシステムに「監視」をつけようと思ったとき、最初にすることはなんでしょうか? まずは、システムを何らかのツールで監視するところから始めましょう。やらなきゃはじまらない。 Nagios, Cacti, Mun

                          監視の考え方 〜あるいは可観測性とはなんなのか〜 - estie inside blog
                        • リアクティブは難しいが役に立つ - Chatwork Creator's Note

                          お久しぶりです、かとじゅん(@j5ik2o)です。テックブログを書くのは何年ぶりか…。 サービスが停止したり応答性が低下すると、お叱りや逆に励ましをいただきますが、エンジニアとして設計レベルからそういった問題に対処するにはどうするか、日々精進しているところですmm。この記事はそういう論点で注目されている「リアクティブ原則」についてまとめてみたいと思います。 それなりのボリュームになってしまったので、時間があるときに読んでいただければと思います。 さて、Linux Foundation内の新たなトップレベルプロジェクトであるReactive Foundationが主催する、Reactive Summit 2020が11月10日にオンラインで開催されたので参加しました。 www.reactivesummit.org 参加されていたスピーカーはLightbendをはじめ、Netflix, Fac

                            リアクティブは難しいが役に立つ - Chatwork Creator's Note
                          • golangとDockerとOOM — KaoriYa

                            golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて

                            • 僕が障害復旧対応時に考えていることを言語化してみる - Qiita

                              これまで数多くのシステム障害を復旧してきました。 障害は無いに越したことは無いですし、起こらないように最善を尽くすのが我々エンジニアの使命です。 しかし、どれだけ最善を尽くしても起こる時には起こります。 今回は、これまで数多くの障害を復旧させてきたエンジニアが、復旧作業時に何を考えているのかを改めて言語化してみたいと思います。 こういう情報ってそれぞれのエンジニアの頭の中にあってあまり共有されないので、意外に参考になるかなと思います。 障害復旧対応の醍醐味 表現が適切かは分かりませんが、僕はシステム障害を復旧させるのが大好きです。目の前に起こっている事象からヒントを集め、地道に原因を切り分けてクリティカルヒットを見つけたときは名探偵になった爽快感があります。 加えて、動いているものを常に動かし続ける日頃の保守運用とは異なり、動いてないマイナスの状況を0まで戻すということで、復旧成功した際に

                                僕が障害復旧対応時に考えていることを言語化してみる - Qiita
                              • eBPFに3日で入門した話 - CADDi Tech Blog

                                はじめに eBPF とはなにか ざっくり概要 「Packet Filter」なのに「Virtual Machine」? eBPFでなにができるか? カーネルイベントのフック ユーザーランドアプリケーションとのやりとり eBPFの主な用途 eBPFが注目される背景 eBPFの仕組み アーキテクチャと処理フロー カーネルモジュールとeBPFの違い eBPFプログラムの作り方 eBPFプログラムを作ってみる 環境の準備 Hello world もう少し複雑なサンプル その他のサンプル HTTPリクエストのダンプ TCP接続先の調査 tcplife dirtop filetop oomkill まとめ eBPFはなにに使えるか 参考サイト はじめに こんにちは、Platformチームの小森です。 eBPF (extended Berkley Packet Filter) について、2022年8月2

                                  eBPFに3日で入門した話 - CADDi Tech Blog
                                • 新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー - Qiita

                                  この記事で伝えたいこと(忙しい人向け) 新人ほど「保守していく」ことの感覚が腹落ちしにくいのではないか説 我々は保守しやすいコードを書くべきであり、保守しやすいコードを達成するための手段として原理原則やデザインパターンが存在している 保守ってなんで必要なんだっけ?という体系的な理解を持ったうえで、具体的なテクニックを学んでいくことが大事 // 追記(2023/12/9) なんとミノ駆動 さんにコメントいただけました。 もちろん良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方は読んで影響を受けてます。 とってもうれしい。 想定読者 新卒 ~ 2年目くらいまでのプログラミング初心者 Webアプリの保守開発をしているエンジニア 3ヶ月前くらいの自分(未経験からエンジニアになって1年くらい) こんなことないでしょうか 先輩などから原理原則の観点を共有してもらったり、

                                    新人プログラマ アンチパターン:原理原則多すぎて脳みそOOMエラー - Qiita
                                  • Why Is SQLite Coded In C

                                    Note: Sections 2.0 and 3.0 of this article were added in response to comments on Hacker News and Reddit. Since its inception on 2000-05-29, SQLite has been implemented in generic C. C was and continues to be the best language for implementing a software library like SQLite. There are no plans to recode SQLite in any other programming language at this time. The reasons why C is the best language to

                                    • スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog

                                      こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさかgemを入れ替えるだけでこんなに嬉しい変化が見られるとは思っていませんでした。今日はそんなgemの話をします。 話は遡って2023年4月のある日、インターネットを眺めていたところ、ShopifyがpitchforkというOSSを公開したという情報が目に留まりました。 調べてみると、どうやら著名なRackサーバー実装の1つであるunicornの派生版であり、メモリ使用量の削減に特化しているらしいのです。 github.com これはスタディサプリ小中高のあのリソースドカ食いマイクロサービス第一位である api

                                        スタディサプリ最大のRailsアプリケーションにYJIT+pitchforkを導入してメモリ使用量を劇的に削減するまで - スタディサプリ Product Team Blog
                                      • GoはいつGCするのか?

                                        TL;DR Go(のランタイム)は以下のタイミングで自動的にGCを実行する 前回のGC後に占有していたメモリと同量を新たに確保したとき 前回のGCから2分後 cgroupなどでメモリ制限しているときは、メモリ使用量が制限の50%以上になったらruntime.GC()を呼び手動でGCすべきである 前置き: GoとOOMのこれまで 以下はGo 1.16での調査結果です。Goのバージョンが異なった場合は事情が異なる可能性があります。 Goでプログラムを書く際に、使用メモリ量を気にしなければならないシーンはGCのおかげでそう多くはありません。実際それは間違いではないのですが、運用まで視野に入れるとそうは言ってられないことがあるのもまた現実です。昨今はコンテナの利用が当たり前になったことに伴い、OOMによりプロセスが強制的に終了させられることもあり、それを避けるために一定量以下のメモリで動くことが重

                                          GoはいつGCするのか?
                                        • 「MySQLのフェイルオーバーテストをする」と聞いてぼんやり思ったこと

                                          TL;DR 負荷をかけながらフェイルオーバーテストをするなら、負荷クライアント側で「どの書き込みが成功したのか」のログは必ず取っておく でないと、フェイルオーバー起因でデータロストが発生するのかしないのかのチェックができない フェイルオーバーシナリオ スイッチオーバー(手動での切り替え)を含めてざっと思いつくのはこれくらい。 スイッチオーバー mysqldの正常終了 mysqldの異常終了、特に、mysqld_safeやsystemdがmysqldを再起動させてしまう環境 mysqldのハングアップ カーネルパニック ファイルシステムのハングアップ 電プチ スイッチオーバー たぶんHAソリューションを作る時にちゃんとテストするからこれはそんなに問題にならない気がするけれど、(レプリケーションベースのソリューションの場合)「レプリケーション遅延が起こってる時のスイッチオーバー」で何が起こるか

                                          • パソコン「生徒1人1台」に 西村経済再生担当相 : 痛いニュース(ノ∀`)

                                            パソコン「生徒1人1台」に 西村経済再生担当相 1 名前:みつを ★:2019/11/19(火) 19:42:16.46 ID:GahjP5yS9 経済対策 パソコン「1人1台」に 生徒1人がパソコン1台を使えるようにするための教育環境の整備が、近くとりまとめられる経済対策に盛り込まれる方向。 先週の経済財政諮問会議で、安倍首相は、「パソコンが1人あたり1台となることが当然だということを、国家意思として明確に示すことが重要」だと発言している。 西村経済再生担当相は、閣議後の会見で「単に配るだけでは活用が進まないので、教える人材をどう確保するのか、ソフト面も含めて議論を進めている」と述べた。 https://www.fnn.jp/posts/00427537CX/201911191931_CX_CX 4: 名無しさん@1周年 2019/11/19(火) 19:43:29.65 ID:wZ0I

                                              パソコン「生徒1人1台」に 西村経済再生担当相 : 痛いニュース(ノ∀`)
                                            • YJITの性能を最大限引き出す方法 - k0kubun's blog

                                              RubyのJITコンパイラYJITを開発している弊社Shopifyでは、社内で最もトラフィックが多いストアフロントのアプリにRuby 3.3 (master) をデプロイして平均レスポンスタイムが16%高速化、社内で最も大きなアプリであるモノリスにRuby 3.2をデプロイして平均レスポンスタイムが9%高速化している。他の会社でも、YJITを本番で有効にしたら高速化したという事例をちらほら目にした。 一方で必ずしも良い報告ばかりではなく、YJITを有効化したらメモリを使い切ってしまったりだとか、遅くなったみたいな報告も目に入ることがある。こういった問題は我々も多かれ少なかれ経験しており、それぞれ適切に対処することで解決できたため、その知見を共有する。*1 メモリを使い切ってしまった時 zenn.dev YJITを有効化すると、YJITが生成する機械語に加えて、それに関するメタデータもメモリ

                                                YJITの性能を最大限引き出す方法 - k0kubun's blog
                                              • GitHub Actions のコスト戦略 - GeekFactory

                                                TLDR 開発体験が良くなると CI のコストも減る 不必要なジョブ実行を減らし、割れ窓を直すことから始めると良い Self-hosted runners ではクラウドコスト最適化の一般的なプラクティスも併用する GitHub Actions のコスト構造 GitHub-hosted runners GitHub が提供するインフラを利用する。一般的なクラウドより高めの料金設定になっている 1分単位で課金される。ジョブの実行時間が数秒間でも1分間で課金されるので注意 Public repository は無料、Private repository は従量課金になっている Organization 内で利用料金が合算されて翌月請求される。Organization Owner なら請求レポート (CSV) をダウンロードできる Self-hosted runners GitHub では課金され

                                                  GitHub Actions のコスト戦略 - GeekFactory
                                                • なぜPrometheusを辞めてDatadogを採用したのか - ABEJA Tech Blog

                                                  こんにちは。ABEJAのインフラ管理してる村主 @rwle1221 です。 本ブログは Datadog Advent Calendar 2019 の8日目です。 今日は ABEJA Platform というプロダクトで、なぜ Prometheus から Datadog に変えたのか。というお話したいと思います。 一人の方でも採用基準の参考になればと思います。 第一フェーズ:実は元々Datadogを使っていた 実は Prometheus の前は Datadog を使っていました。 なぜ Datadog を使っていたかというと、Za○bix や Na○ios などは古い思想なので使う気になれなかったという単純な理由です。 ただ、 Datadog は $18/host という値段で 当初は数十台だったので数万円ほど発生していました。やはり少し高いなという印象です。 第二フェーズ:Promethe

                                                    なぜPrometheusを辞めてDatadogを採用したのか - ABEJA Tech Blog
                                                  • Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ

                                                    この記事はJX通信社 Advent Calendar 2019 2日目の記事です。 昨日は、たっちさんの「Kubernetes Admission Webhookでリソース作成を自在にコントロールする」でした。 こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 今回は長年動かしてた Scala のマイクロサービスのリビルドを行った話をしようと思います。 TL;DR 新しい言語を投入するのにマイクロサービスは便利 Scala で感じていた問題点を解消しつつ Go へ移行できた 消費メモリが大きく減って安定稼働できるようになった 予防線を貼っておきますと、Scala より Go のほうがいいよね、といった本旨ではありません。 Scala で書いたマイクロサービス 弊社のマイクロサービスの一つにカテゴリ分類専用のサービスが存在します。 カテゴリやキーワードを登録しておくとル

                                                      Scala で書いたマイクロサービスを Go で書き直した話 - JX通信社エンジニアブログ
                                                    • Kubernetesをぶち壊す10の奇妙な方法 (前編) - Qiita

                                                      はじめに これは、ZOZOテクノロジーズ #4 Advent Calendar 2019 12日目のエントリーです。 今回はKubeConに参加して面白かったセッションの1つである「10 weird ways to blow up your Kubernetes(Kubernetesをぶち壊す10の奇妙な方法)」をご紹介します。 この他にも、「Airbnbの事例に学ぶKubernetesとマイクロサービスのあり方 @ KubeCon Seattle 2018」という記事も執筆しているので、合わせてご覧ください。 また、このセッションのスピーカーであるMelanie Cebulaは、CloudNative Days Tokyo 2019のキーノートスピーカーとしても来日し、登壇しています。 後編書きました! セッションの背景 セッションスピーカーであるMelanieとBruceは、Airbn

                                                        Kubernetesをぶち壊す10の奇妙な方法 (前編) - Qiita
                                                      • Linux perf Examples

                                                        Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

                                                        • Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD Tech Blog

                                                          はじめに こんにちは。リアーキテクティングチームの髙橋と申します。 この記事では、アンドパッドの施工管理サービスで利用している Ruby をバージョンアップしたときに発生したメモリ使用量の問題の発生から解決までをお話しします。 Ruby のバージョンアップ(3.0 -> 3.2) アンドパッドでは昨年 2023 に、施工管理サービスで利用している Ruby を 3.0 から 3.2 にバージョンアップしました。 バージョンアップ自体は過去に確立済みの手法(詳しくは過去記事をご参照ください)により、粛々と進められリリースされました。 ところがこのリリースから数日後、とある問題が発覚しました。 メモリ増大問題 アプリケーションのリソース使用状況を監視している SRE チームのメンバーから、以下のような連絡がありました。 Ruby バージョンアップのリリース以降、アプリケーションの利用するメモリ

                                                            Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD Tech Blog
                                                          • 「多層キャッシュサーバー」を2人×2日で爆速開発 インフラリソースを10分の1にした、Go製サーバー開発の裏側

                                                            サイバーエージェントグループ横断でGoに関する知見を共有し合う社内勉強会「CA.go」。今回はその社外版として、「FIFA ワールドカップ カタール 2022」を全64試合無料生中継をした新しい未来のテレビ「ABEMA(アベマ)」のチームがGo活用事例を紹介しました。ここで登壇したのは、江頭宏亮氏。「ABEMA」のレコメンドに対する大規模アクセスを支えるGo製サーバー開発について発表しました。全2回。後半は、「Yatagarasu」に対するリクエストの具体例の説明と視聴者からの質問に答えました。前回はこちら。 Yatagarasuに対するリクエストの具体例を説明 江頭宏亮氏(以下、江頭):次に、オリジンのYatagarasuへのリクエストを具体的にどのようにやっているのか、説明したいと思います。 先ほど見せたスクリーンショットだと、右側にモジュールが3つ並んでいたと思いますが、実際は縦スク

                                                              「多層キャッシュサーバー」を2人×2日で爆速開発 インフラリソースを10分の1にした、Go製サーバー開発の裏側
                                                            • クラウド世代の OSS 監視システム「Prometheus」 Meetup でがっつり話を聞いてきた #prometheustokyo | DevelopersIO

                                                              6/3 渋谷で行われた Prometheus Tokyo Meetup #2 をレポートします。 Prometheus といえば「クラウドネイティブ」というキーワードの中で語られることの多いインフラ監視・モニタリングソリューションですが、本ミートアップではクックパッド社やヤフー社の事例など、 Prometheus ヘビーユーザの方々により特徴や活用事例が語られる、非常に興味深いものでした。 Prometheus Tokyo Meetup #2 - connpass Prometheus Tokyo Meetup #2 - 資料一覧 - connpass なお、本ミートアップはサイバーエージェント殿協力の下、渋谷の Abema Towers にて行われました。 動画 Prometheus Tokyo Meetup #2 - YouTube 入門 Prometheus スピーカー : Kazu

                                                                クラウド世代の OSS 監視システム「Prometheus」 Meetup でがっつり話を聞いてきた #prometheustokyo | DevelopersIO
                                                              • Goプログラム実行時間の短縮 - ZOZO TECH BLOG

                                                                こんにちは。生産プラットフォーム開発部の中嶋です。生産プラットフォーム開発部はアパレル生産のDXを進めている部門です。具体的には服作りのIT化を含めたアパレル生産の効率化の促進と「生産支援」のシステムを主にGoで開発しています。今回はその運用の中でGoプログラムの実行時間をどのように短縮したのかを紹介します。 目次 目次 学べること・解決できること 背景 エラー発生 調査・対応 インスタンスの変更 原因 実装アプローチの見直し ゴルーチンを使ったタイムアウト処理 サンプルコード チャネルのクローズについて Goのメモリマネジメントについて スタックとヒープ ゴルーチンとメモリについて ヒープについて 問題の仮説 どのように解決したか 実装イメージ 利用したパッケージ サンプルコード 結果 まとめ 最後に 参考リンク 学べること・解決できること Goのメモリエラーに対するアプローチ例 Go視

                                                                  Goプログラム実行時間の短縮 - ZOZO TECH BLOG
                                                                • ルーターでプレゼンする。 - Zopfcode

                                                                  市販のネットワークルーターやスイッチに導入することで、元々のファームウェアでは実現できなかった高度な設定や最新のプロトコルが利用できる Linux ディストリビューションの OpenWrt は、2004年の登場から今年でちょうど20周年を迎えた。90年代の Linux ルーターという概念の勃興から、ルーター向け Linux ディストリビューションは DD-WRT や Tomato など複数生まれたが、現在もサポートと新機種の追加が続くほどの活気を保っているのは OpenWrt だけといっても過言ではない。 そんな記念すべき20周年を盛り上げるべく(?)久しぶりにルーター遊びをしたので紹介する。 (本記事は2024年4月26日に岡山理大で開催された Okayama Revengers LT 大会 #2「もう春じゃなぁ〜 LT大会でもするかぁ!」にて発表した以下のスライドを文章にしたものです。

                                                                    ルーターでプレゼンする。 - Zopfcode
                                                                  • 詳解: Amazon ECS による CPU とメモリのリソース管理 | Amazon Web Services

                                                                    Amazon Web Services ブログ 詳解: Amazon ECS による CPU とメモリのリソース管理 この記事は How Amazon ECS manages CPU and memory resources (記事公開日: 2019 年 10 月 21 日) を翻訳したものです。 2019 年 8 月 19 日に、コンテナ単位で Linux 上で使用可能なスワップ領域の設定をサポートする Amazon Elastic Container Service (Amazon ECS) の新機能を発表しました。この機会を利用して、ECS のリソース管理がどのように機能するかについて (この新機能によって導入された動作も含めて) 、一歩下がってより全体的な説明をしたいと思います。具体的には、ECS によってさまざまな起動タイプ (すなわち、Amazon EC2 と AWS Farg

                                                                      詳解: Amazon ECS による CPU とメモリのリソース管理 | Amazon Web Services
                                                                    • Aurora MySQLのメモリ不足の原因を特定する

                                                                      シンプルフォーム株式会社でインフラエンジニアをしている守屋です。 本記事では Aurora MySQL の OOM(メモリ不足)エラーについて、原因となるクエリを特定するために役立つ Tips を弊社での実例を交えてご紹介します。 発端 突如 Slack に鳴り響く不吉な通知。 「パターン青!障害です!!」 どうやら本番環境の Aurora クラスターがフェイルオーバーしてアプリケーションが DB コネクションエラーを引き起こした模様です。幸いインスタンスは冗長化していて Aurora のフェイルオーバーは高速であるため、ユーザー目線では瞬断が発生した程度の比較的影響が小さめな障害に留まりました。しかしインフラエンジニアとしては捨ておけない状況です!早速原因の調査を始めました。 フェイルオーバーの原因 結論から言うとメモリ使用量がスパイクして OOM エラーが発生したことが原因でした。根拠

                                                                        Aurora MySQLのメモリ不足の原因を特定する
                                                                      • Low-level Container Runtime:Runc Internals - 鳩小屋

                                                                        参考 おさらい runc architecture file main.go and command process runc create setupSpec startContainer linuxContainer LinuxFactory createContainer CreateLibcontainerConfig loadFactory factory.Create runner.run newProcess linuxContainer.Start newParentProcess parentProcess.start() runc init nsenter nsexec runc init(After nsexec) linuxStandardInit.Init runc start 低レベルコンテナランタイムruncの内部処理のまとめです。 参考 2021/05現在:

                                                                          Low-level Container Runtime:Runc Internals - 鳩小屋
                                                                        • もう一度読むObservability Engineering - じゃあ、おうちで学べる

                                                                          はじめに 本書『Observability Engineering』は、複雑化の一途をたどる現代のソフトウェアシステムに立ち向かうための、強力な武器となる一冊であり本稿はその読書感想文です。Observability Engineering を今から知りたい方はもちろん、Observability Engineering の基礎を改めて学びたい方もぜひお読みください。この記事もかなりの長さになるので普通に書籍を読んだほうがいいかもです learning.oreilly.com 「Observability:可観測性」という言葉は、近年ソフトウェアエンジニアリングの世界で大きな注目を集めています。しかし、その概念の本質を理解し、実践に移すことは容易ではありません。 本書は、そのオブザーバビリティについて、その基本的な考え方から、具体的な実装方法、そして組織への適用まで、幅広くかつ深く解説して

                                                                            もう一度読むObservability Engineering - じゃあ、おうちで学べる
                                                                          • 負荷試験との向き合い方 - スタディサプリ Product Team Blog

                                                                            こんにちは。SRE の近藤(@chaspy)です。 先日、より高い信頼性でサービスを提供するために、スタディサプリ小中高大のサービスの最後の砦であるデータベース、MongoDB のインスタンスクラスのスケールアップを行いました。また、スケールアップをするにあたり、負荷試験を行いました。 本記事では、データベースインスタンスのスケールアップの際に行なった負荷試験に対する考え方と、得た学びを紹介します。 なぜスケールアップするのか サービスの急成長に伴い、アクセス数もデータ量も増加しています。数年前に「しばらくは大丈夫」と判断できるインスタンスクラスにスケールアップをしたデータベースも、高負荷時には性能が劣化してしまう問題に遭遇しました。 私たちの MongoDB は AWS 上に EC2 インスタンスとしてセルフホストしており、MongoDB Cloud Manager を使って運用の一部を

                                                                              負荷試験との向き合い方 - スタディサプリ Product Team Blog
                                                                            • [速報]Amazon Linux 2022がやってきた!(プレビュー版) | DevelopersIO

                                                                              みなさんこんにちは、杉金です。 Amazon Linux 2の後継にあたるAmazon Linux 2022のプレビュー版がきましたね!ついに!! 公式リンク集 Newsページ GitHub 製品ページ ユーザーガイド Amazon Linux 2022とは Amazon Linux 2022(AL2022)はAWSが独自に提供するLinuxサーバOSです。Amazon Linux 2の後継として今回発表されました。AL2022以降、Amazon Linuxの新しいメジャーバージョンは2年ごとにリリースされ、四半期ごとのマイナーリリースが含まれ、5年間の長期サポートが付属するようです。特徴として、デフォルトでパッケージリポジトリが特定のバージョンにロックでき、継続的デプロイのセットアップを容易にします。また、デフォルトでSELinuxが有効になっています。AL2022は、AWS公式のFAQ

                                                                                [速報]Amazon Linux 2022がやってきた!(プレビュー版) | DevelopersIO
                                                                              • WEARにおけるKubernetes導入と改善の歩み - ZOZO TECH BLOG

                                                                                はじめに こんにちは。ブランドソリューション開発本部 WEAR部 SREの和田(@wadason)です。普段は「ファッションコーディネートアプリ WEAR」のSREとしてクラウドの運用やリプレイスをおこなっています。 WEARはサービス開始から10年が経ち、クラウドやオンプレミスを含む大小様々なシステムが稼働しています。アプリケーションを動かすための基盤にはAmazon ECSのようなコンテナを前提としたものから、オンプレミスのAPIやBatchを動かすIISまで幅広く扱っています。そうした中で、約1年前にSREチームが結成され、技術負債の脱却やクラウドを中心としたインフラの運用を行なってきました。当初取り組んでいた大規模なリプレイス案件も落ち着き、チームメンバーが増えてきたので、現在では分散した技術スタックをKubernetesへ統一するリプレイスプロジェクトを開始しています。 本記事で

                                                                                  WEARにおけるKubernetes導入と改善の歩み - ZOZO TECH BLOG
                                                                                • PHP の各種キャッシュ機構でメモリが枯渇した場合の挙動を調べてみた|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                                                                  PHP の各種キャッシュ機構でメモリが枯渇した場合の挙動を調べてみた こんにちは。やまゆです。 弊社の主軸であるソーシャルゲーム開発においては、マスターデータの存在は欠かせません。 マスターデータとは、例えば下記のようなものがあります。 武器の名称・アイコン画像名・攻撃力・スキルIDガチャでどのカードが何%の確率で排出されるのか敵を倒した時の報酬ゲーム内イベントの開始日時と終了日時 このように、全ユーザーで共有される設定データのことをマスターと呼びます。 これらのデータは膨大で、運営を続けていくとアイテムの追加やイベントの追加により、だんだんサイズが肥大化していきます。また、頻繁にアクセスされることが予測されるため、処理上のボトルネックになる可能性が高いです。 そのため、サーバサイドでマスターデータを処理する際は毎回データベースへアクセスすることはせず、別の場所にキャッシュしておいて、基本

                                                                                    PHP の各種キャッシュ機構でメモリが枯渇した場合の挙動を調べてみた|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ