並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 101件

新着順 人気順

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

  • コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう|ハイクラス転職・求人情報サイト AMBI(アンビ)

    コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう コンテナ技術を適切に活用するには、コンテナが「どうやって」動いているかを学びたいところ。はてなのエンジニアhayajo_77さんがコンテナの要素技術の勘所を解説します。 こんにちは。株式会社はてなでサーバー監視サービス「Mackerel」のSREを務めるhayajo_77( @hayajo )です。 さて、コンテナ技術はDockerの登場がきっかけとなり、本格的に活用が始まりました。現在はKubernetesを始めとするコンテナオーケストレーションツールや AWS, GCP, Azure などのクラウドサービスで提供されるコンテナマネジメントサービスを採用したサービス運用事例が数多く紹介されており、コンテナ技術は「理解する」フェイズから「利用する」フェイズに移ってきています。 コンテナそのものは上記のツールやサービスにより

      コンテナ技術入門 - 仮想化との違いを知り、要素技術を触って学ぼう|ハイクラス転職・求人情報サイト AMBI(アンビ)
    • はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話 - Hatena Developer Blog

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

        はてなブログのキャッシュ周りをきちんと改善したら、アプリケーションサーバの台数を半分にできた話 - Hatena Developer Blog
      • リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi

        リトライを肴に一晩酒が飲める古橋です。 大規模なデータに触れることが日常茶飯事になっている今日この頃。この分野のおもしろいところは、いつまで経っても終わらないプログラムを簡単に作れてしまうことかもしれません。エラー処理、リトライそして冪等性*1の3つを抑えていないプログラムは、小規模なデータなら問題ないが、データ量が多くなると使い物にならなくなる可能性が大です。 大規模データをバッチ処理するケース以外でも、リトライは一般にプログラムの信頼性に関わる重要な問題です。 そんなわけで、リトライに関わるいくつかのデザインパターンを、連載でまとめておこうと思います*2。 では、第1回は背景から: なぜリトライが必要なのか プログラムは色々な理由で失敗する。例えば、 A) 通信先のプログラムが高負荷すぎて応答できなかった B) メモリを消費しすぎてメモリ確保に失敗した。またはOOM KIllerに殺さ

          リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
        • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

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

            6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst
          • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

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

            • やってはいけない!!MySQLに悲鳴をあげさせる10の方法

              いつも「MySQLを使うときはこうするべき」という観点から記事を書いているが、今日は逆に犯してはいけない過ちをリストアップしようと思う。 1. 全てのカラムにインデックスをつけるデータベース初心者がもっともやってしまいがちな間違いはコレではないだろうか。インデックスはいい。検索がとても速くなるから。しかし、それと引き替えにインデックスは更新するときにコストがかかるし、その分多くのディスクスペースを消費する。特に更新にかかるコストは時に甚大で、該当するインデックスのページがキャッシュ上にない場合はディスクからいったんそのページを読み込まなければいけない。ディスクアクセスは動作にとても時間がかかるので、インデックスが多数、例えば全てのカラムに付いていたりすると「あれ?固まったか?」というような状態になってしまうことがあるだろう。インデックスは必要なカラムにだけつけるようにテーブルを設計しよう。

                やってはいけない!!MySQLに悲鳴をあげさせる10の方法
              • ミドルウェア性能検証の手引き | 外道父の匠

                インフラエンジニアの多分、華形のお仕事の1つであるミドルウェアの性能検証を久々にガッツリやる機会がありましたので、検証作業の基本的な項目について初心から振り返っておきたいと思います。読みやすさ度外視の詰め込み記事注意警報です。 世の中、雑な検証結果もちょいちょい散乱していて、私自身もそうならないよう注意を払っているわけですが、ガチでやると気をつける項目が多くて、自分で忘れたりしないようにと、誰かにやってもらいたい時に基本を抑えてから取り掛かってもらうために、形にして残しておこうと思った次第であります。 目次 なぜ性能検証をするのか 環境の準備 インスタンスの用意 クライアントの用意 サーバーの用意 ボトルネックになりうる項目 CPU Utilization Memory Network Bandwidth Disk Bandwidth Disk IOPS Disk Latency Disk

                  ミドルウェア性能検証の手引き | 外道父の匠
                • Linux シグナルの基礎

                  TLPI (The Linux Programming Interface) 再々。 TLPI の輪読の際に @matsumotory よりシグナルセットあたりをまとめるようにと指令が出たので、拙遅な感じでまとめました。 シグナルとは プロセス間通信の一種。「プロセスにシグナルを送信すると、そのプロセスの正常処理に割り込んで、シグナル固有の処理(シグナルハンドラ) が実行される」プロセス側では、シグナルを受信した際の動作(シグナルハンドラ) を設定することや、シグナルをブロックすることも可能。 コンソールで、プロセスを終了させるためにkill -9 <PID>とかCtrl+Cとかした際にも、対象プロセスにシグナルが送信されている。 ちなみに、PID「1」の init や systemd にkill -9 1しても何も起らない。(そういえば昔、oom-killer に init を殺された覚

                    Linux シグナルの基礎
                  • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

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

                      データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
                    • 低レイヤーの学び方 ── システムソフトウェアの世界は「今すぐ役に立つものが全て」ではない - GeekOutコラム

                      はじめまして、木村 廉と申します。現在神戸大学大学院の修士2年生で、システムソフトウェアの脆弱性検出やself protectionについて研究しています。 § 実はこのコラム執筆のお誘いをいただいた時、はじめはお受けするかどうか少し迷いました。というのも、「GeekOut」の過去のコラムを見ると、執筆者の皆さんは最前線で活躍されている方ばかりで、一介の学生の私では見劣りするような気がしたからです。 しかしながら、私もエンジニアの端くれですので、他のエンジニアと差別化できる強みも多少は持っています。そしてそれは、幸いにも他の人とかぶりづらいマニアックな部類のもので、参考にできる資料も多くありません。 その強みとは、OSやハイパーバイザ(コンピュータを仮想化するための制御ソフトウェア)といった、基本的な制御を行うシステムソフトウェアを開発したり、それに手を入れたりすることです。いわゆる“低レ

                        低レイヤーの学び方 ── システムソフトウェアの世界は「今すぐ役に立つものが全て」ではない - GeekOutコラム
                      • スピリチュアルエンジニアリング入門 - 昼メシ物語

                        先日 hack05 というイベントで LT をしたので、そのときの資料をまとめておきます。 スピリチュアル エンジニアリングとは システム開発・運用にスピリチュアル要素を取り入れることでシステム安定化を目指します。 皆さんご存知の通り、人間の技術力には限界があり、予測不能な事故(バグ)はまさに、神の領域といえます。 そこで「ジンクス」「縁起かつぎ」「妖精さん」などの力を借りることで、人間の手ではどうしようもない事態を回避するというのがこのスピリチュアルエンジニアリングです。 スピリチュアルエンジニアリングの基本原理 スピリチュアルエンジニアリングの基本は「祈り」にあります。「絶対に動く」という祈りの強さがよりよいコードをもたらします。 スピリチュアルはすべてのエンジニアの身近に! 以下に当てはまる人がいたら、あなたも立派なスピリチュアルエンジニア! コーディング中に神が降りてきたと思う瞬間

                          スピリチュアルエンジニアリング入門 - 昼メシ物語
                        • 大規模システムでの 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 のメモリ管理
                          • 富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox

                            はじめに Android プログラマのみなさん、こんにちは。 今日も元気に Out Of Memory してますか? ということで、この記事では日々 OOM に悩まされる Memory 的な意味で富豪的な Android プログラマの為に、Eclipse Memory Analyzer Tool、通称 MAT の基本的な使い方を紹介します。 尚、この記事は [twitter:@youten] さんが企画された裏 Android Advent Calendar 12/20 の記事ですが、内容的には比較的オモテなものになっています。 対象読者 Andoid アプリ作ってる/はじめたけど、まだ MAT を使ったことがない方 MAT を使ってみようした事はあるものの、画面から難しそうな雰囲気を察知し、起動10秒後にはそっとタブを閉じてしまった経験がある方 DDMS の基本的な使い方を理解している方

                              富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox
                            • 8つの質問で、Java SI業界の現状を知る - レベルエンター山本大のブログ

                              Webサービス系の会社の隆盛があって、人材流出が騒がれたのが1−3年ぐらい前だろうか。 SIの産業の人材動向が、今どうなってるかって? 大方の予想より凄惨ですよ。 それが分かる方法がある。JavaWeb技術者に技術力を問う8つの質問によってだ。 SI業界のエンジニアの平均レベルを知りたくって、いろんな会社さんのJavaWeb開発者(経験者)向けに以下のような8つの質問を継続的にしている。 対象者としては、Java経験3から10年ぐらいの現役バリバリのはずのJavaエンジニアだ。 その8つの質問というのはこんな問題だ。 JavaWeb技術者に技術力を問う8の質問 インターフェイスのメリットを一言で表して下さい。(筆記解答) HttpRequestオブジェクトからPostされたデータを取得するServletのメソッドは何ですか?(筆記解答) Sessionのスコープを端的に説明してください。(

                                8つの質問で、Java SI業界の現状を知る - レベルエンター山本大のブログ
                              • 個人で運用するKubernetesクラスタ - k0kubun's blog

                                Kubernetesの使用感に興味があってaws-workshop-for-kubernetesというのを先週やり、ちょうどEKSがGAになった直後だったのでEKSが試せたのだけど、まあ最初からマネージドだとあまり面白みがないし金もかかるので、個人のVPSで動かしてた奴を全部Kubernetes上で動かすようにしてみている。 まだ本番で運用した知見みたいなのが貯まってるわけではないのだが、公式のドキュメントを中心に読んでいても単に動かし始める段階で結構ハマって時間を消費したので、これから同じようなことをやろうとしている人向けに備忘録を兼ねて使用感や知見をまとめておくことにした。 Kubernetesは今でもalphaやbetaの機能が多く、今後この記事の内容も古くなることが予想されるので、なるべく公式のドキュメントへのリンクを置くのを意識して書いてある。 構成 現時点で、ConoHaで借り

                                  個人で運用するKubernetesクラスタ - k0kubun's blog
                                • 常駐型サーバープログラムのデバッグ手法

                                  BOOK: WEB+DB Press TITLE: 常駐型サーバーのデバッグ手法(ドラフト版) AUTHOR: (株)プリファードインフラストラクチャー 太田一樹 *注: この文章はWEB+DB PRESS Vol.48に掲載された記事のドラフト版です はじめに 今回はデバッグ関連特集ということで、常駐型サーバープログラムを作成する際のハマりどころやそれに対する解析方法・解析ツール・対策を、実際の経験を交えながら紹介したいと思います。 筆者は(株)プリファードインフラストラクチャーでインメモリ分散検索エンジン「Sedue (セデュー)」を開発しています。モバイル向け検索エンジン「エフルート」や、2008/11/6にリニューアルされました「はてなブックマーク2」などの検索バックエンドとして使われております。 この検索エンジンはいくつかの常駐型サーバープログラムから構成されており

                                  • Linuxのサーバをリモートから強制的にOSリブートする - 元RX-7乗りの適当な日々

                                    先日、諸々の都合で遠隔にあるテスト環境のサーバ(Linux)のカーネルパラメータを弄っていたのですが、ちょっと設定(メモリまわり)がイキすぎてしまいw、コマンド実行というかforkできなくなってしまった(Cannot allocate memory...)。 んで、shutdownコマンドも実行できなくなったので、直そうと思ったのですが、色々弄った&時間がなかったこともあり、一旦OSを再起動しちゃいたいな、と(汗 が、遠隔にあるサーバなので、物理的な電源スイッチON/OFFができない(厳密には出来る環境ではあったのですが、このサーバはそこに入ってなかったw)。ので、SysRqキーを送ることにした。 やり方 少し無理矢理感はありますが、 # echo b > /proc/sysrq-triggerを実行すると、強制的にリブートがかかります。 ただし、ファイルシステムのsyncとかumount

                                      Linuxのサーバをリモートから強制的にOSリブートする - 元RX-7乗りの適当な日々
                                    • OOMKillerに亭主を殺されて一年が経ちました。 - 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentoo... - Yahoo!知恵袋

                                      OOM Killerに亭主を殺されて一年が経ちました。 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentooをインストールしていたときでした。 亭主はそれなりに経験があるkernel hackerだったので、いとも簡単にGentooをインストールしてくれ、私は一目惚れしてしまいました。 幸い亭主も私も同じVim教だったので、教会で素敵な結婚式を挙げることができました。 少し下品な話ですがmakeに励んだおかげで子宝にも恵まれ、私たちは幸せに暮らしていました。 でも、二人とも気づかなかったのです。 まさか私たちのメモリが限界を迎えていたなんて、思ってもみませんでした。 「メモリ不足な昔の話だからどうせ私たちには関係ない」 - そう思っていたのが間違いだったのです。 亭主は突然、あの悪名高きOOM Killerに殺されてしまったのです。 そこからは悪夢のような日々でした。 毎日毎

                                        OOMKillerに亭主を殺されて一年が経ちました。 - 私が亭主と出会ったのは今からちょうど4年2ヶ月前、私がGentoo... - Yahoo!知恵袋
                                      • 例えば GC を止める・Ruby ウェブアプリケーションの高速化 - 2nd life (移転しました)

                                        最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente

                                          例えば GC を止める・Ruby ウェブアプリケーションの高速化 - 2nd life (移転しました)
                                        • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

                                          情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

                                            Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
                                          • 無題のドキュメント 篠原ともえが可愛くなっている件について

                                            無題のドキュメントとは ブックマークして頂けると光栄です。 「管理人にまとめさせたいスレ」 を募集しています。 面白いスレがあったら、そのスレの URLを教えて下さい! メールフォームはこちら TOP絵も募集中です! 今までに頂いた絵←多謝!! やる夫がゴミ問題に興味を持つようです 癒されるAA貼ろうぜ あたしニート ツナ缶のうまい食い方教えてくれ 女子アナ画像ください!!!!! 漢字怖すぎワロタwwwwwwwwwwwwwwwwwwww 2 0 0 8 年 最 も 笑 っ た ス レ タ イ 東大卒無職だがなんか質問ある? スーツ姿の女性の画像が欲しい 花山薫ちゃんてどんな娘なんですか? おすすめのエレクトロニカ教えてちょ おい、志村けんのブログがギャルみたいになってるぞw 古畑任三郎があの村へやってくるそうです む ろ ふ し の

                                            • スワップの弁護:よくある誤解を解く

                                              (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 とします。 長文を読みたくない方への要約: スワップを持つことは正しく機能するシステムのかなり重要なポイントです。 スワップが無ければ、まともなメモリ管理を実現することは難しくなります。 スワップは一般的に緊急事態用のメモリを取得するためのものではなく、メモリの回収を平等に効率的に行うためのものです。 実のところ「緊急事態用のメモリ」は一般的に盛大に悪影響を及ぼします。 スワップを無効にすることは

                                                スワップの弁護:よくある誤解を解く
                                              • Apache killerは危険~Apache killerを評価する上での注意~

                                                Apacheの脆弱性(CVE-2011-3192)いわゆるApache killerが話題になっていますが、その脅威については一部誤解があるようです。 以下は、非常に脅威とする報告の例です。 一方今回のはプロセスの肥大化を伴うので、実メモリ消費して更にスワップも使い尽くしてOS毎激重になったあげくLinuxとかの場合はOOM Killer発動と、他のプロセスや場合によってはOSを巻き込んで逝ってしまいます。 CVE-2011-3192 Range header DoS vulnerability Apache HTTPD 1.3/2.xより引用 以下は、それほど脅威でなかったとする報告の例です。 pooh.gr.jp は結構頑丈だったので 60 並列でやっと CPU idle 30% まで減らせた。 Apache Killer (CVE-2011-3192) 対策 for CentOS 5

                                                • OutOfMemoryError の調べ方 - Qiita

                                                  Java 8 で、 Oracle の JVM を前提とした話です。 Java のメモリ管理 これを知っておかないと、 OOME が起こっても、メモリ内で何が起こっていて、どこを調査すべきで、どのように対処したらいいのかが判断できない。 なので、まずは、そもそも Java がどうやってメモリを管理しているのかを知る。 しかし、実際調べてみたら予想通りというかなんというか、量が多くなってしまった。 なので、個々の用語の説明は末尾の 用語集 に押し込めたので、ここではざっくりとした概要だけ記載する。 メモリの構造 超ざっくりとした、メモリ構造を表した図。 おおきく、ヒープ(Heap)領域とネイティブ(Native)領域の2つの領域がある。 ヒープは Java プログラムが使う領域で、プログラム上で生成したオブジェクトは、このヒープ領域に配置される。 一方、ネイティブ領域は JVM が動くのに必要

                                                    OutOfMemoryError の調べ方 - Qiita
                                                  • CentOS 5 の初期設定 | Carpe Diem

                                                    CentOS 5.x をインストールしたあと、いろいろと初期設定を行っています。今は、サーバ用途の場合 kickstart の %post セクションでいろいろな初期設定をまとめて行って自動化しています。kickstart は、別の機会に公開するとして、今回は %post セクションで行っている初期設定を順番に紹介します。紹介する順序は、順不同です。 NOZEROCONF を設定する 余計なネットワーク経路を作らないために、/etc/sysconfig/network に次の設定を追加します。APIPA という仕組みを使う場合は必要です。 NOZEROCONF=yes IPv6 を無効にする IPv6 を使っていないので、/etc/modprobe.conf に次の設定を追加します。 alias net-pf-10 off alias ipv6 off ifdown-eth にバッチをあて

                                                    • 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 オプショ

                                                        • あなたの知らない time(1) の世界 - kuenishi's blog

                                                          自分が書いたプログラムのメモリ使用量を測定したいことがある。プログラムがOOM Killerによってお亡くなりになった場合や、ページフォルトをなくして高速化したい場合などだ。定常的に起動するサーバーのプログラムなら、sarや meminfo など(今なら Datadog とかだろうか)を使ってじーっと見つめるわけだ。もっとモダンにやるなら perf や DTrace を使ってもよいかもしれない。しかしこれらのツールは基本的にプロセスIDを渡してサンプリングして外から覗く方法だ。 わたしのユースケースはデーモンプロセスではなく、 main から入って必要な計算をして、それが終わったら main を抜けるバッチジョブ(単にコンソールから実行して終わるまで待つ、いわゆる "Hello world!" 的なやつ)だ。これだと、プログラムが起動して終わるまでそこそこの時間で終わってしまって、外部プロ

                                                            あなたの知らない time(1) の世界 - kuenishi's blog
                                                          • 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 つのこと
                                                              • Amazon EC2(Linux)のswap領域ベストプラクティス | DevelopersIO

                                                                ども、大瀧です。 Linuxのメモリ管理で欠かせないのがswapですよね。EC2のディスク管理には独特な仕様があるのでその辺りを踏まえつつ、EC2(Linux)でどのようにswap領域を用意するのが良いのかまとめてみたいと思います。 理屈をこねながらの解説になるので、先に本エントリーの結論を。 公式AMIにはswap領域が含まれない m1.small、c1.mediumには900MBのスワップ領域がおまけでついてくる(Amazon Linux AMIであれば、Cloud-initによって自動マウントされる) swap領域には、インスタンスストア(別名Ephemeral Disk)を使うべし では、それぞれ見ていきます。 公式Linux AMIの初期構成にはswapパーティションが無い Amazonから提供される公式のLinux AMIのブートディスクには、swapパーティションが含まれてい

                                                                  Amazon EC2(Linux)のswap領域ベストプラクティス | DevelopersIO
                                                                • OpenStackとLXCを導入した話 - mixi engineer blog

                                                                  こんにちは、運用部 アプリ運用グループの清水です。Golang鋭意勉強中です。 今回は、SNS「mixi」に限った話ではなく、ミクシィ社全体として利用している仮想環境について紹介したいと思います。パブリッククラウドも一部のサービスで利用していますが、今回は、自社で運用している仮想環境にフォーカスして書いてみようと思います。 今まで利用してきた仮想環境 今まで利用してきた仮想環境というと、手作業で構築したKVM(Kernel-based Virtual Machine)環境が中心でした。手作業といってもある程度手軽に構築できるように、シェルスクリプトとCobblerでVMを構築できるようになっています。構築の流れは以下のとおりです。 CobblerにVMのIPやホスト名などをスクリプトで登録する。 KVMのホスト上でスクリプトを実行(koanコマンドでCobblerと連携してVMをセットアッ

                                                                    OpenStackとLXCを導入した話 - mixi engineer blog
                                                                  • グーグルが普及する前、みんな何使ってた?

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

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

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

                                                                        監視の考え方 〜あるいは可観測性とはなんなのか〜 - estie inside blog
                                                                      • チャットで学ぶ Go ネットワークプログラミング : DSAS開発者の部屋

                                                                        簡単なチャットプログラムは、ネットワークプログラミング用のフレームワークでは定番のサンプルプログラムです。 echo サーバーが Hello World とするなら、チャットは FizzBuzz といったところでしょう。 とりあえず動くだけのチャットならだれでもすぐに作れるようになりますが、まじめにチャットを作ることで、 ネットワークプログラミングで考えないといけない点やエラー処理の重要な基礎を学ぶことができます。 ということで、 Go でシンプルなチャットを実装してみました。 (ソースコード) 以降、何を考えてどういう設計を採用したのかを解説していきます。 考慮すべきポイント 特定のクライアントへの送信に長時間待たされた場合に、他のクライアントへの送信が遅れないようにする。 クライアントを切断するのは、 (1)ルーム側から kick する場合, (2)受信エラー, (3)送信エラー の3

                                                                          チャットで学ぶ Go ネットワークプログラミング : DSAS開発者の部屋
                                                                        • 最近のAndroid事情に対応した「OutOfMemoryErrorを知る」発表スライドを公開しました - ひつじのにっき

                                                                          横浜Android and モバイルOS プラットフォーム部で発表した資料です。 資料はAndroidアプリ開発者をターゲットにまとめました。OutofMemoryErrorの発生原理とメモリ管理について最新事情を加味してまとめました(新版、なのはAndroid 1.xのころの発表が古いのにまだ参照されていたりで、さすがに最新事情に合わせて更新したかったのです)。 Androidアプリにおけるメモリ事情は(初期に比べたら)改善していますが、OpenCVなど画像処理の需要、高解像度対応を踏まえると依然として十分とは言いがたいユースケースもあります。そんな中でメモリ資源をうまく使うための指標となれば幸いです。 資料にもある通り書きかけの状態ですのでコメントやmentionなど「こんな情報があるから書き加えて」「ここ調べて」「こういうのがおすすめ」「ここ間違えてる!」というご意見いただければ嬉し

                                                                            最近のAndroid事情に対応した「OutOfMemoryErrorを知る」発表スライドを公開しました - ひつじのにっき
                                                                          • 尾崎豊の息子がCMで披露したI LOVE YOUに鳥肌

                                                                            #attrip さんのコメント... すてきです。 2010年10月2日 18:03 匿名 さんのコメント... 素晴らしい!! 2010年10月2日 18:53 匿名 さんのコメント... ほんとうだ、鳥肌が立つ。尾崎豊を知っている者としては、勝手に感動、感涙してしまう。 2010年10月2日 23:47 匿名 さんのコメント... いい歌ですね 2010年10月4日 7:59 匿名 さんのコメント... これやべえだろ・・・・・ 2010年10月5日 0:41 匿名 さんのコメント... 劣化コピーは必要ないよ。 声は似てるけど音程悪いし。 "似てる"なら本物以下って事。 息子ならなおのこと。 2010年10月5日 3:38 匿名 さんのコメント... 優劣つけるやつはアホとしか思えない 同じ人間じゃないんだから 初めて息子の歌聞いたとき なんかいろいろこみ上げてきて泣いた 2010年

                                                                            • 『画像システムの車窓から』

                                                                              2年半くらい画像システムを担当していたのですが、3月イッパイで異動することになりましたokzkです。 異動記念ということで、とりとめもなくエンジニアブログを書いてみます。長いです。よろしくお願いいたします。 画像システムのこれまでのストレージ事情最初にアメブロ(以下、単にブログ)のユーザ投稿画像関連でのストレージの歴史をアレコレをまとめてみようと思います。なお、以下swiftと書いたらOpenStack Swiftのことです。流行のプログラミング言語のことではありません。 はるか昔の状況昔は単純にWebDAVを複数台並べ、イッパイになったら更に次の世代のWebDAVを追加する、というような構成で、参照時に画像URLパスに含まれる年月ベースで適切な世代のWebDAVにルーティングしていました。 (参考:画像URLのパスの例) /user_images/20160401/00/shibuya/

                                                                                『画像システムの車窓から』
                                                                              • 企業ロゴってかっこいいのあるよね

                                                                                1 名前: 土鍋(大阪府):2010/03/26(金) 00:18:39.90 ID:KIS/TMF1 ?PLT(12000) ポイント特典 休眠商標使いやすく 特許庁が法改正案 特許庁は商標法を見直し、使われていないブランド名やロゴなどをほかの 企業が使いやすいようにする。 企業が他社の休眠特許を審判などで取り消した場合、 取り消しから1年以上たたなくても、すぐに自社の商標として登録できるようにする。 商品寿命の短い食品などの事業展開がしやすくなりそうだ。早ければ来年の通常国会に 商標法改正案を提出する。 使われていない商標を放置すると、新たに商標を登録する企業の選択の幅を狭めるため、 権利者以外の企業が3年以上使用していない商標の取り消しを特許庁に求めることができる。 2008年には約1400件の商標が取り消された。ただ商標が取り消されても、1年間は 同じ商標を登録できない。 特許庁は

                                                                                • リアクティブは難しいが役に立つ - kubell Creator's Note

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

                                                                                    リアクティブは難しいが役に立つ - kubell Creator's Note