performanceとtroubleshootingに関するflakwingのブックマーク (6)

  • 恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は川口浩探検隊に入ることです。 先日、弊社のアプリケーションサーバーで大量にメモリを消費するという現象に遭遇しました。アクセス頻度の低いサーバーがメモリを大量消費するという謎深いものでした。 発生当初の状況はこんな感じです。 アプリケーションサーバーでは Jetty が稼働 現象が発生した JVM は 5GB 程度のメモリを消費しており、明らかに通常ではない量のメモリを消費している 複数台のサーバーで発生していたが、全てで発生したわけではない。 また、発生したサーバーはいずれもアクセス頻度が少ないサーバーだった。 ヒープ、パーマネント、スタック ひとまず、JVM でトラブルが発生した時は何はともあれヒープダンプとスレッドダンプを見るに限ります。各種情報の取得をインフラ部隊へ依頼し、得られたヒープを解析すると、

    恐怖の JVM 大量メモリ消費!メモリリークの謎を追え!! - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 3000req / sec と戦う - だるろぐ

    ざっくり概要 ピークで3000req / sec 毎分コンテンツ更新要求 コンテンツ更新の際は他所からデータをapi経由で受け取る コンテンツ更新にはTheSchwartzを使用 なコンテンツを色々してきたログ。 尚、ここに書く技術は大半が周囲のギークな方々にサポートしてもらったもので、僕自身が何かしたわけではない。残念すぎる。 構成 internet -> www(squid -> apache) -> app(memcached -> app) -> db フロントエンド wwwサーバがapacheとsquidを動かしている。apacheがリクエストを受け、squidのキャッシュが有ればそれを返し、無ければバックエンドのappサーバへproxy。 バックエンド appサーバがmemcachedとアプリを動かしている。 それぞれ冗長化してるけど、リクエスト数の割に台数は少ない。 技術があ

    3000req / sec と戦う - だるろぐ
  • 高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋

    はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立

    高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋
  • フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ

    目的 フロントがHTTPリクエストを受けて、バックエンドのアプリケーションサーバにreverse proxyするような構成において、指定秒数以内に何かしらのレスポンスを返したい。 200が返せない場合は、処理を打ち切って500を返したい。 背景 フロントでApacheやNginxをreverse proxyとして使っている場合、バックエンドが無応答になってしまうと、クライアントにレスポンスが返るのはデフォルトで数十〜数百秒後(ApacheのTimeoutのデフォルトは300秒、Nginxのproxy_read_timeoutのデフォルトは60秒)になってしまいます。 通常のWebサービスではこのオーダーのタイムアウトでもいいのかもしれませんが、数秒以内に(エラーでもいいので)レスポンスを返すことが求められる環境も存在します。(最近、特に多いのではないでしょうか:P) もちろんバックエンドが

    フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ
  • Java EEサーバからレスポンス返らず。何から調べる?

    今回は、Webシステムの代表的な問題の1つとして、Java EE(J2EE)サーバのプロセスのハングアップが発生した場合を取り上げる。こういった場合、IT情シス・SE/プログラマがどういった流れで問題解決をしていくべきか。その手順について話をうかがったので、その内容を紹介する。 現象の見え方 今回は、以下の問題についての話だ。 問題解決への流れ 通常のプロセスハングアップが発生した場合、設定によっては、Java EEサーバのハングアップを検知して、自動的に障害資料採取およびサーバの再起動が実施される。しかし、このような設定を行っていない場合は、どうすればいいのだろうか。手動で障害資料を取得してから、サーバの再起動を行う必要がある。 プロセスハングアップ時に必要な障害資料は、OSの統計情報やJava EEサーバのログ・トレース、スレッドダンプだ。 スレッドダンプ 特に、スレッドダンプはハング

    Java EEサーバからレスポンス返らず。何から調べる?
  • Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT

    今回の概要 システムが応答しない、パフォーマンスが劣化したなどのトラブルが発生したときに、原因がなかなか掴めず、あたふたすることはないだろうか? 稿では、Java EEトラブルシューティングの現場で役立つ7つ道具を紹介する ある日、突然電話が鳴る 用件は、「システムが不定期に停止する。よく分からないけど、どうやらJava EE部分がおかしい」とのこと。このような事態が発生したとき、やみくもに原因を調べ、いつまでたっても問題が解決できず、原因の一片も発見できないことが多々ある。 トラブルが発生した場合、ツールが充実していない昔は、開発者の経験と勘に頼るところが非常に大きかった。Webシステムが普及するいま、昔とは比べ物にならないほど、システムの数が増え、開発者数が増える一方、システム障害を切り分けられる職人的なエンジニアの人数はシステム数に比例して増えているわけではない。そのため、すべての

    Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT
    flakwing
    flakwing 2007/03/24
    問題点切り分けのためのツールの使い方。
  • 1