並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 77件

新着順 人気順

"OOM Killer"の検索結果1 - 40 件 / 77件

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

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

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

        • 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 つのこと
          • 監視の考え方 〜あるいは可観測性とはなんなのか〜 - estie inside blog

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

              監視の考え方 〜あるいは可観測性とはなんなのか〜 - estie inside blog
            • 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
              • 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ソリューションを作る時にちゃんとテストするからこれはそんなに問題にならない気がするけれど、(レプリケーションベースのソリューションの場合)「レプリケーション遅延が起こってる時のスイッチオーバー」で何が起こるか

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

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

                      Ruby のメモリ使用量問題を調査し upstream で解決していただいた話 - ANDPAD 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
                        • Amazon Linux 2023がGAされました | DevelopersIO

                          抜粋 : Release cadence - Amazon Linux 2023 メジャーリリースとマイナーリリースの内容は以下AWS公式ドキュメントに記載されています。メジャーリリース時には互換性があるか十分に検証した上でアップデートしましょう。 Major version release— Includes new features and improvements in security and performance across the stack. The improvements might include major changes to the kernel, toolchain, Glib C, OpenSSL, and any other system libraries and utilities. Major releases of Amazon Linux ar

                            Amazon Linux 2023がGAされました | DevelopersIO
                          • がんばらないDBaaSの作り方 - KADOKAWA Connected Engineering Blog

                            はじめに はじめまして、KCS部のmaruです。KCS部では、部長といくつかのサービスのオーナーをやっています。 KCS部は、KADOKAWAグループ向けプライベートクラウド(以下KCS)を提供しており、私がオーナーをしているサービスにはDataBase as a Service(以下DBaaS)があります。 主な利用者は株式会社ドワンゴがサービスを提供している『niconico』です。 今回はKCSが提供しているDBaaSについて、いかに頑張らないで運用できるようにしているかについて投稿します。 規模で見るKCS DBaaS KCSが現在提供しているDBaaSは下記の3つです。 KCS RDB基盤 for MySQL バージョン:MySQL 5.7系 MySQL数(概算):450 masterの総データ量(概算):3TB KCS Cache基盤 for Redis*1 バージョン:Red

                              がんばらないDBaaSの作り方 - KADOKAWA Connected Engineering Blog
                            • Containers the hard way: Gocker: A mini Docker written in Go

                              They are popular and they are misunderstood. Containers have become the default way applications are packaged and run on servers, initially popularized by Docker. Now, Docker itself is misunderstood. It is the name of a company and a command (a suite of commands, rather) that allow you to manage containers (create, run, delete, network) easily. Containers themselves however, are created from a set

                                Containers the hard way: Gocker: A mini Docker written in Go
                              • Using Native Memory by JVM | DevelopersIO

                                はじめに こんにちは。事業開発部のこむろ@さっぽろです。 最近、諸事情から所属部署でどこにでも顔を出す人として活動しています。 今回はJVMのメモリ周りについて初めて調べました。 背景 Javaアプリケーションを利用している場合、最近ではContainerを利用してアプリケーションを起動しているところも多いかと思います。わたしの所属する事業開発部では、ECSを利用して複数のJavaアプリケーション(Spring Boot)をContainerで稼働させています。 Containerで稼働させるため一つのホストのリソースをすべて割り当てられるわけではありません。Containerには利用できるリソースにハードリミットが設けられているため、リソースの配分には少々気を使う必要があります。 今まであまり意識してチューニング等していなかったのですが(富豪的にメモリを割り当てたりしてて深く考えていなか

                                  Using Native Memory by JVM | DevelopersIO
                                • 第814回 1500円以下で買えるRaspberry Pi PicoサイズのRISC-VボードなMilk-V DuoでUbuntuを動かす | gihyo.jp

                                  Ubuntu Weekly Recipe 第814回1500円以下で買えるRaspberry Pi PicoサイズのRISC-VボードなMilk-V DuoでUbuntuを動かす Ubuntu 24.04 LTSではRISC-Vボードのひとつである「Milk-V Mars」をサポートしました。これは中国のRISC-V製品のベンダーであるMilk-Vが作っているRaspberry Piライクなシングルボードコンピューターです[1]。ただしこのMarsはなかなか入手できない状況が続いています。Milk-Vでは他にも64コア搭載されたPCライクなPioneer、10GbEのネットワークスイッチとして使えるVegaなどもリリースしています。今回はRaspberry Pi Picoサイズの小さなボードで、比較的安価で入手性が高いMilk-V Duoシリーズに、Ubuntuをインストールしてみましょう

                                    第814回 1500円以下で買えるRaspberry Pi PicoサイズのRISC-VボードなMilk-V DuoでUbuntuを動かす | gihyo.jp
                                  • Who murdered my lovely Prometheus container in Kubernetes cluster?

                                    As of October 1, 2023, LINE has been rebranded as LY Corporation. Visit the new blog of LY Corporation here: LY Corporation Tech Blog This blog post is about an interesting experience I had while investigating and resolving a problem that happened in the Prometheus container which was still in the CrashLoopBackoff state. The phenomenon itself and the solution are obvious and simple; so simple that

                                      Who murdered my lovely Prometheus container in Kubernetes cluster?
                                    • BUYMAの検索システムを刷新したお話 - エニグモ開発者ブログ

                                      こんにちは。主にBUYMAの検索周りを担当しているエンジニアの伊藤です。 BUYMAではSolrを利用した検索システムがいくつかあります。 BUYMAの検索というと検索ボリュームが一番大きな商品検索を想像されると思いますが、 今回はデータボリュームが一番大きい検索システムをターゲットとして、インフラ周りを含め全面的にシステムの刷新を行いました。 ここでは、 既存の検索システムがどういったものだったのか なぜシステム更改が必要だったのか(どういう課題があったのか) 更改後の検索システムはどういったものか 今後の課題について 等々についてご紹介したいと思います。 既存の検索システムについて 既存の検索システムは下記の通り、シンプルという点ではとても素晴らしいものでした。 ただし下記のような問題を抱えている状況でした。 スケールアウトしない構成である スケールアップの限界 Solrのバージョンが

                                        BUYMAの検索システムを刷新したお話 - エニグモ開発者ブログ
                                      • Kubernetes OOM and CPU Throttling

                                        Introduction When working with Kubernetes, Out of Memory (OOM) errors and CPU throttling are the main headaches of resource handling in cloud applications. Why is that? CPU and Memory requirements in cloud applications are ever more important, since they are tied directly to your cloud costs. With limits and requests, you can configure how your pods should allocate memory and CPU resources in orde

                                          Kubernetes OOM and CPU Throttling
                                        • コンテナ環境でのJavaチューニング

                                          Javaをコンテナ環境で使う際に、知らないうちに発生してしまうCPUスロットリングやOOM-killerなど、発生メカニズムやJavaVMのチューニング対処について。

                                            コンテナ環境でのJavaチューニング
                                          • Linux メモリ管理 徹底入門(プロセス編)

                                            Linux カーネルのメモリ管理方法について、勉強したことをまとめる。プロセス編。 カーネル編はこちら。 Linux メモリ管理 徹底入門(カーネル編) - SIerだけど技術やりたいブログwww.kimullaa.com OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux メモリ管理の特徴メモリの使い方を簡素化すると、次の図のようになる。 どのような特徴があるかをまとめる。 連続した

                                              Linux メモリ管理 徹底入門(プロセス編)
                                            • The SYZBOT CTF

                                              目次 第0章 概要 0.1 syzbot とは? 0.2 主な登場人物紹介? 0.3 自己紹介:熊猫の Linux との関わりについて 0.4 今日のお話「バグハンティング」 第1章 Linux カーネルについて 1.1 Linux カーネルの規模について 1.2 Linux カーネルの制約事項について 1.3 Linux カーネルのデバッグ支援機能について 第2章 カーネルメッセージを読めるようにするための試行錯誤について 2.1 printk() に求められているものとは? 2.2 複数行分のメッセージをバッファリングする試み(2017年4月~) 2.3 メッセージ本文中にコンテキスト情報を埋め込む試み(2018年4月~) 2.4 1行分のメッセージをバッファリングする試み(2018年6月~) 2.5 再び1行分のメッセージをバッファリングする試み(2018年9月~) 2.6 再挑戦(

                                              • Hunting down a C memory leak in a Go program

                                                What it feels like when your app is leaking memoryIntroductionOver the last few years at Zendesk, both Go and Kafka have been increasingly growing in importance in our architecture. It was of course inevitable that they should meet, and so various teams have been writing Kafka consumers and producers in Go of late. There are a few different library options for building Kafka apps in Go, but we’ve

                                                  Hunting down a C memory leak in a Go program
                                                • 分散ストレージCephのオーケストレータRookのデータ破壊バグを修正しました - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                  はじめに こんにちは、Necoプロジェクトのsatです。本記事では分散ストレージCephのオーケストレータであり、Kubernetes上で動作するRookに関するものです。このRookに存在していたデータ破壊バグを我々が検出、修正した体験談、およびそこから得られたことを読者のみなさんに共有します。本記事は以前Kubernetes Meetup Tokyo #36におけるLTで述べた問題のフォローアップという位置づけです。 speakerdeck.com "解決までの流れ(詳細)"の節以外はRookやCephについて知らなくても適宜用語を説明するなどして読めるように書きました。 Rook/Ceph固有の話にも興味があるかたは以下の記事/スライドも併せてごらんください。 blog.cybozu.io speakerdeck.com 用語 Rook/Cephについて知らないかた向けに、まずは本節

                                                    分散ストレージCephのオーケストレータRookのデータ破壊バグを修正しました - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                  • ブログと Web サイトをオーバーホールした

                                                    一部の人には気付かれていたと思うんですが、diary.sorah.jp と blog.sorah.jp が長い間ダウンしていました。復旧させるのも腰が重く 2 年くらい放置していて (その間にも一瞬手を入れたりはしていたけど持続せず)、11 月に入っていろいろな家事をしていてその一環でようやく復活に至ったので報告します。 先に結果として書くと、sorah.jp 含めて Next.js 13 (SSG) になりました。裏に https://github.com/sorah/kozeki というちょっとしたソフトウェアがいて、Markdown ファイル群を処理させています。 なんで復旧の腰が重かったのか ブログはこれまで sorah/days - Rack アプリをデプロイしていました。サーバーフル! まずこのアプリ自体が ActiveRecord + Sinatra という構成になっていて

                                                    • Tkrzw: a set of implementations of DBM

                                                      In general, if you want a key-value storage with the highest performance, choosing the file hash database is recommended. If you need ordered access of records, choosing the file tree database is recommended. If you need scalability of ordered databases, choosing the file skip database is recommended. If you need extreme performance, the on-memory hash database and the on-memory tree database are

                                                      • 稼働中アプリケーション・サーバーの設定を最適化する | 外道父の匠

                                                        リクエストを受け付けてレスポンスを返すようなシステムには、アプリケーション・サーバーというミドルウェアが必要になります。どんなシステムも完全放置して良いものはありませんが、こいつも放置されると機嫌を損ないやすいので、ちょいちょい面倒を見てあげるとよいです。 どんなポイントをどのように調べて、どのように調整してあげると喜ぶか、というのを初級編的にまとめていきたいと思います。 アプリケーション・サーバーの要所 昔は Apache + module という形で、WEBサーバーと同居する形で動かすことがありましたが、今は Nginx の80番ポートが受けて、後ろに控えているアプリケーション・サーバーに socket なり HTTP なりで流す。というのが主流だと思います。 この20年で流行り廃りはありましたが、基本的な設定項目──というか注視すべきポイントというのはそう変わっていません。その要所に

                                                          稼働中アプリケーション・サーバーの設定を最適化する | 外道父の匠
                                                        • SHA-3 Buffer Overflow – Nicky Mouha

                                                          Update: This result appeared in the proceedings of CT-RSA 2023. A preprint is available. Over the past few months, I’ve been coordinating the disclosure of a new vulnerability that I’ve found. Today is the disclosure date, so I am excited that I can finally talk about what I’ve been working on! The vulnerability has been assigned CVE-2022-37454 and bug reports are available for Python, PHP, PyPy,

                                                          • Porting OpenBSD pledge() to Linux

                                                            OpenBSD is an operating system that's famous for its focus on security. Unfortunately, OpenBSD leader Theo states that there are only 7000 users of OpenBSD. So it's a very small but elite group, that wields a disproportionate influence; since we hear all the time about the awesome security features these guys get to use, even though we usually can't use them ourselves. Pledge is like the forbidden

                                                              Porting OpenBSD pledge() to Linux
                                                            • マニフェストファイルに思いを馳せる - エニグモ開発者ブログ

                                                              こんにちは。BUYMAの検索やデータ基盤周りを担当している竹田です。 この記事は Enigmo Advent Calendar 2020 の19日目の記事です。 エニグモに入社してGCPやAWSといったクラウドサービスを利用することが多くなり、日々刺激を受けながら業務に従事しております。 その中でもKubernetesのようにシステムを「宣言的」に定義するモデルに技術進化の恩恵を感じており、自分の体験も踏まえて、クラウドサービスでKubernetesを一般利用するに至るまでどういう歴史的経緯があるのかを辿ってみたくなりました。 (実際Kubernetesで編集するファイルも「マニフェスト(≒宣言)ファイル」といいますね) なお、記事内容には主観を含む部分や、内容を簡素化するため端折っている部分もありますので、あらかじめご了承ください。 chroot まずはKubernetesで管理されるコ

                                                                マニフェストファイルに思いを馳せる - エニグモ開発者ブログ
                                                              • KubernetesのOOMとCPUスロットリング

                                                                本文の内容は、2023年1月25日にJAVIER MARTÍNEZ が投稿したブログ(https://sysdig.com/blog/troubleshoot-kubernetes-oom)を元に日本語に翻訳・再構成した内容となっております。 はじめに Kubernetesを使用する場合、Out of Memory (OOM) エラーとCPUスロットリングは、クラウドアプリケーションのリソース処理で主に頭を悩ませる問題です。なぜでしょうか? クラウドアプリケーションにおけるCPUとメモリの要件は、クラウドのコストに直接結びついているため、これまで以上に重要です。 リミットとリクエストを使用すると、リソースの枯渇を防ぎ、クラウドのコストを調整するために、Pod がメモリと CPU のリソースをどのように割り当てるべきかを設定できます。 ノードに十分なリソースがない場合、Podはプリエンプショ

                                                                  KubernetesのOOMとCPUスロットリング
                                                                • LinuxにおけるOOM発生時の挙動

                                                                  はじめに これはLinux Advent Calendar 2015 3日目の記事を2016/2/2に編集したものです。 Linuxにおいてシステムの物理メモリが枯渇したOut-Of-Memory(OOM)という状態になった際の挙動について説明しています。OOMに関連が深いsysctlパラメタを紹介するとともに、カーネルの内部論理についても触れました。 本記事に記載されているファイル名は、とくに断りが無ければカーネルソースのトップディレクトリからの相対パス名です。調査に使用したカーネルバージョンは4.3です。 本書は話を単純化するために、細かい動作論理については説明を省いていることをご承知おきください。また、本書の中に誤りを見つけたかた、および、私が追いきれなかったソースについての詳細をご存知のかたは、指摘していただけると助かります。 Out-Of-Memory(OOM)とOOM-kill

                                                                    LinuxにおけるOOM発生時の挙動
                                                                  • Kubernetes と cgroup v2 - Qiita

                                                                    はじめに Kubernetes は v1.25 で cgroup v2 サポートを GA しており、その後に cgroup v2 に関連する機能が追加されています。しかしまだ多くのディストリビューションで Kubernetes がデフォルトで cgroup v2 を使用しない設定のため、実際に利用している方は多くないと思います。PFN では2022年12月に Kubernetes バージョンを v1.25 にアップグレードするのと同じタイミングで cgroup v2 に切り替えています。 このエントリでは Kubernetes の cgroup v2 に関する機能である MemoryQoS フィーチャゲートと memory.oom.group の2つについて、機能概要と課題を共有します。なお、Kubernetes v1.28 時点での情報です。 そもそもの cgroup v2 について そ

                                                                      Kubernetes と cgroup v2 - Qiita
                                                                    • Raspberry Pi を Read-Only Root-FS にする & メモリがいっぱいになったらどうなるのか - その手の平は尻もつかめるさ

                                                                      Raspberry Pi を Read-Only Root-FS にしておくと急にマシンがダウンした時でもファイルシステムが破損しにくくなります. もちろん書き込み内容は永続化されなくなりますが (書き込み内容は tmpfs にストアされるので rebootで揮発する),得てして電プチなどの乱暴なオペレーションに晒されがちな Raspberry Pi にはそういった保護機構を入れておくと何かと良いことがあるかと思います. というわけでコレを使います: github.com この repository にあるツールを利用することで,Raspberry Pi をお手軽に Read-Only Root-FS にすることが可能です. 内部的には OverlayFS を利用しており,Write アクセスについては tmpfs に対して操作し, Read アクセスについては SD カードの Read-

                                                                        Raspberry Pi を Read-Only Root-FS にする & メモリがいっぱいになったらどうなるのか - その手の平は尻もつかめるさ
                                                                      • Linux メモリ管理 徹底入門(カーネル編)

                                                                        メモリ管理は、Linux カーネルのコアな機能です。この機能を理解することで、サーバの統計情報の意味がわかるようになったり、トラブル解析ができるようになります。 この記事では、Linux カーネルのメモリ管理について勉強したことを基礎からまとめます。 時間がない人は ここ と ここ だけ読んでらえればと思います。 プロセス編はこちら。 Linux メモリ管理 徹底入門(プロセス編) - SIerだけど技術やりたいブログwww.kimullaa.com メモリ管理はハードウェアに強く依存するため、x86_64 かつ OS起動後に 64bitプロテクトモード に移行したあとに話を絞る。また、OS は CentOS8.1、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) ]# un

                                                                          Linux メモリ管理 徹底入門(カーネル編)
                                                                        • Cloud RunサイドカーでDataDog APMを利用する - y-ohgi's blog

                                                                          TL;DR Cloud Runでサイドカー機能が23/05/16にプレビューが発表されました サイドカーコンテナとしてdatpadog agentを並走させ、APMのトレースを取得を試しました About Cloud Runにサイドカーがプレビューとしてリリースされました。 モニタリングやプロキシなど、Cloud Runで対応が難しかったケースへの大きな選択肢になります。 今回はCloud Runのサイドカーとして、datadog agentを立てAPMのトレースを取得を行います。 いままでのトレースの取得方法 Cloud Run(やコンテナ実行環境)でdatadogのAPMは パブリックベータ として使用可能です。 どの様にdatadog agentのプロセスを扱うかと言うと、コンテナ実行時のコマンドを(ランタイムやバイナリではなく)datadogが提供するプロセスに対してキックする形で

                                                                            Cloud RunサイドカーでDataDog APMを利用する - y-ohgi's blog
                                                                          • Ubuntu 22.04 LTS Integrating systemd-oomd For Improving Low Memory Handling - Phoronix

                                                                            Ubuntu 22.04 LTS Integrating systemd-oomd For Improving Low Memory Handling Written by Michael Larabel in Ubuntu on 31 January 2022 at 09:05 AM EST. 27 Comments Ubuntu 22.04 LTS is going to be making use of systemd-oomd for aiming to improve the experience when out of memory or under heavy memory pressure on the Linux distribution. Ubuntu is now the latest Linux distribution shipping with systemd-

                                                                              Ubuntu 22.04 LTS Integrating systemd-oomd For Improving Low Memory Handling - Phoronix
                                                                            • ECS - Terraformで構築するAWS

                                                                              ECSとは¶ "Elastic Container Service" はAWSが開発したDockerオーケストレーションツールです。 開発者はコンテナを動かすことに集中できるよう開発されていてクラスターの管理はAWSが行ってくれます。 そのため、プロダクションで活用するまでの学習コストが低く、他のAWSサービスとの連携もしやすいことが特徴です。 構成¶ ECSは "コントロールプレーン" と "データプレーン" の2つに別れます。 データプレーンは1台以上のEC2をリソースプールとして扱うもので、データプレーン上にコンテナは配置されます。 コントロールプレーンはデータプレーン上へコンテナの配置とその管理を行います。 基本的に開発者はEC2を立てて、ECSのコンソール上で「どんなコンテナが必要か」定義するだけであとはよしなにコンテナが動きます。 Fargate データプレーンを構成するEC2

                                                                              • A decade of major cache incidents at Twitter

                                                                                This was co-authored with Yao Yue This is a collection of information on severe (SEV-0 or SEV-1, the most severe incident classifications) incidents at Twitter that were at least partially attributed to cache from the time Twitter started using its current incident tracking JIRA (2012) to date (2022), with one bonus incident from before 2012. Not including the bonus incident, there were 6 SEV-0s a

                                                                                • Kubernetesクラスターで信頼性の高いログ収集基盤を構築 LINEのプライベートクラウドにおけるログ管理の苦労ポイント

                                                                                  2021年11月10日と11日の2日間、LINE株式会社が主催するエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2021」がオンラインで開催されました。そこで坂本大将氏が、LINEのプライベートクラウド「Verda」でログ収集する上でのポイントについて共有しました。前半は「Verda」でログ収集する上での課題について。 LINEが内製しているプライベートクラウドプラットフォーム「Verda」 坂本大将氏:それでは「Reliable Logs Aggregation System in Multi-Tenant Kubernetes cluster」というタイトルで発表し たいと思います。 まずスピーカーの自己紹介からします。私は坂本大将と申します。2021年1月にLINEに入社していて、以来VerdaというプライベートクラウドのSREを務めています。ミッションとし

                                                                                    Kubernetesクラスターで信頼性の高いログ収集基盤を構築 LINEのプライベートクラウドにおけるログ管理の苦労ポイント