Netflixのパフォーマンスエンジニアである筆者からの、topコマンドなどで表示されるCPU使用率(%CPU)は、いまや本当の使用率を表しておらず、チューニングなどのための指標として使えないという指摘。なぜそうなってしまったのか、何を見れば本当のCPU使用率がわかるのかをわかりやすく解説した記事。 私たちみんながCPU使用率として使っている指標は非常に誤解を招くもので、この状況は毎年悪化しています。CPU使用率とは何でしょうか?プロセッサーがどのくらい忙しいか?違います。CPU使用率が表しているのはそれではありません。私が話しているのは、あちこちで、あらゆる人たちに、あらゆる監視製品で、あるいはtop(1)でも使われている、"%CPU"という指標のことです。 あなたの考えているであろうCPU使用率90% : 実際 : "stalled"(訳注 : 以下ストールと言う)とは、プロセッサーが
Facebook gave aMySQLTech Talk where they talked about many thingsMySQL, but one of the more subtle and interesting points was their focus on controlling the variance of request response times and notjust worrying about maximizing queries per second. But first thescalability porn. Facebook's OLTP performance numbers were as usual, quite dramatic: Query response times: 4ms reads, 5ms writes.Row

こんばんは、 @matsumotoryです。 hb.matsumoto-r.jp 上記エントリにおいて、プロセスの大量メモリ確保に伴うページテーブルサイズとベージテーブルエントリ数の肥大化によるcloneやexecveの性能劣化とCPU使用時間の専有問題、および、それらの解決方法についてシステムコールレベルで確認しました。 そこで今回は、システムコールやそのカーネル内部の処理の性能、というよりは、より実践的な環境であるApache httpdとmod_cgiを用いて、phpinfo()を実行するだけのCGIに対してベンチマークをかけた時にどれぐらいCPUのidleが空くか、システムCPUの使用量が変わるかを、前回示した解決方法の1つであるHugePagesを使うかどうかの観点で比較してみましょう。 特定条件下のWebサーバ環境のシステムCPUに起因する高負荷問題から、システムコールやカーネ
この記事では、Webアプリケーション(特にバックエンド部分)を構築するときにハイレベルなパフォーマンスを達成しようとするなら考慮するべき、最も一般的な原則のいくつかを取り上げたいと思います。私は、自分自身の経験から、主にPHPの世界で使われるいくつかの例、設計パターン、慣例やツールについて書きますが、ここで説明する概念は、どんな言語やフレームワークにも必ず当てはまると思います。 手短に言うと、基本ルールは次の6つです。 ルール1 . 時期尚早な最適化を回避する ルール2 . 最小限の作業で問題を解決する ルール3 . 今すぐやらなくてもいい作業は延期する ルール4 . 使えるときはキャッシュを使う ルール5 . リレーショナルデータベースのN+1問題を理解し、回避する ルール6 . 可能ならアプリケーションに水平スケーラビリティをもたせる ルール1: 時期尚早な最適化を回避する Donal

"Nested LoopJoinしか取り上げて無いのにタイトルが大きすぎないか" と指摘を頂いたので、タイトルを修正しました。MergeJoinとHashJoinのことはまた今度書こうと思います。 「JOINは遅い」とよく言われます。特にRDBを使い始めて間がない内にそういう言説に触れた結果「JOIN=悪」という認識で固定化されてしまっている人も多いように感じています。 たしかに、JOINを含むようなSELECT文は、含まないものに比べて重たくなる傾向があることは事実です。また、本質的に問い合わせたい内容が複雑で、対処することが難しいものも存在します。しかし、RDBの中で一体どういうことが起きているのかを知り、それに基いて対処すれば高速化できることも少なくないと考えています。本稿では、JOINの内部動作を解説した上で、Webサービスを作っているとよく出てくるJOINSQLを例題に

Win32は「仮想メモリ」をサポートしている。Windows上で実行されているプロセスは、実際の物理メモリの容量に関わらず、プロセスごとに4Gバイトの仮想メモリ空間が割り当てられる。 仮想メモリ空間は、ページと呼ばれる単位で管理される。x86系ならば1メモリページは4Kバイトである。システムは、プロセスの仮想メモリ空間中で、プロセスが使用しているメモリページだけを物理メモリに割り当て、未使用のメモリページは物理メモリに割り当てない。この仕組みにより、物理メモリの容量を超える仮想メモリ空間を実現することができる。 物理メモリには、RAMとページングファイルがある。システムは、RAMの容量以上の物理メモリが必要になると、RAM上のメモリページをページングファイルに退避し、RAM上に空きメモリページを作り、このページを使用する。ページングファイルに退避されたメモリページに割り当てられていた仮想メ

「tPacketCapture」はroot権限を必要としないパケットキャプチャアプリです。 「tPacketCapture」はAndroid OS 4.0(IceCream Sandwich)で提供されているVpnServiceを利用して端末の通信内容をキャプチャします。 これにより、既存のパケットキャプチャアプリでは必須とされていたroot権限を取得していない端末であっても通信データをキャプチャすることが可能です。 通常、VPN(Virtual PrivateNetwork)というと、トンネリングによりパケットに新しいヘッダを付加して外部と通信を行うイメージですが、このアプリではパケットの送受信時に受け取ったデータの記録のみを行います。 記録したデータは一般的なパケットキャプチャツールで読み込み可能なPCAP形式で出力されるため、 ファイルをPCに転送してWiresharkなどの解析
エルピーダメモリは1月24日、次世代メモリ「ReRAM」(Resistance Random Access Memory:抵抗変化型メモリ)の開発に初めて成功したと発表した。不揮発性ながらNAND型フラッシュメモリと比べて高速で、情報機器用メモリの大幅な省電力化が可能という。来年にも量産開始を目指す。 電圧を加えることで抵抗値が変化する材料を素子として使ったメモリ。フラッシュメモリと同様、電源を落としてもデータを保持できる不揮発性で、さらにデータの読み書きが高速かつ消費電力も少ないのが特徴。DRAMとフラッシュのメリットを兼ね備えているとしている。書き換え可能回数は100万回以上とNANDフラッシュの10倍以上という。 試作品は50ナノメートルプロセスで製造し、64Mビットのメモリセルアレイ動作を確認した。今後さらに開発を進め、来年にも30ナノメートルプロセスによるギガビットクラスの製品の

PC Watchの記事で Fusion-io、読み取り1.5GB/secの世界最速SSD 〜PCI Express接続で最大容量1.2TB というニュースを見かけたのだが、この製品がなんとも凄い。 シーケンシャルリードは1.5GB/sec、シーケンシャルライトは1.4GB/secというからまさに爆速!!最近人気のインテル製SSDでもシーケンシャルリードが250MB/sec、シーケンシャルライトは170M/secぐらいだからまさに桁が違う。ただしこの製品、インターフェイスはPCI Expressであり、残念ながらノートPCでは利用出来ない。MacBook Proでウハウハ快適生活!!は出来ないわけである・・・残念。 製造元のFusion-ioはサーバー向けだと謳っているのて爆速SSDでウハウハ快適データベース生活!!なら可能だ。サーバー用途で使う場合、PCI Express接続だと共有スト

PHPのJITコンパイラ「HipHop VirtualMachine」、Facebookがオープンソースで公開 HipHop VirtualMachineは、PHPを高速に実行するためにPHPのコードをC/C++に変換してg++でコンパイルし、バイナリコードにするHiphop compiler(hphpc)と、PHPのインタプリタであるHipHop interpreter (hphpi)を組み合わせたもの。PHPのコードをダイナミックにバイナリコードへと変換することで、高速な実行を目指しています。 コンパイラと同等以上の実行速度へ HipHopはFacebookが開発し、オープンソースとして公開しています。今回のHipHop VirtualMachineも、これらの開発の延長線上にあるものです。 Our experiences with hphpc led us to start e

7/9(土)にチューニンガソン というイベントに参加して優勝してきたので、その報告と、何を考えてどんなチューニングをしたのかを 記憶の範囲で公開したいと思います。 今回のチューニンガソンのお題は、WordPress(ja) +php + Apache +MySQL で、 ab を使って wp-comment.php 経由でコメントのポストをすることで計測が行われました。MySQLとApacheを立ち上げたらWordPressが動く環境が渡され、そのWordPress自体は設定ファイルを含めて 改造が一切禁止、WordPressの実行をショートカットするチートも禁止です。 0. 試合前日 環境がAWSとAMILinuxということは事前に公開されていたため、前日にAWSに登録して少しだけAMILinuxを 触ってみました。yumベースだけどCentOSと違って結構新しいバージョンが用

write はページに dirty フラグを立てるだけなので決してユーザープロセスを待たせない って、本当にそうなんでしょうか?(否定しているわけではなく、純粋な疑問です。) と質問をもらったので、最近追ったことをここでまとめます。かなり長文です、すいません。また、まだまだ不勉強なので間違っているところもあるかもしれません。ツッコミ大歓迎です。 まず、オライリーのカーネル本の 15章 ページキャッシュ 15.3 汚れたページのディスクへの書き込み から引用。 ご存知のように、カーネルは、ブロック型デバイスのデータを含むページをページキャッシュに蓄えています。プロセスが何らかのデータを更新した場合は、必ず対応するページに汚れている印をつけます。すなわち、PG_dirty フラグを設定します。 UNIX システムでは、汚れたページのブロック型デバイスへの書き込みを遅延することができます。この方

Webページレイアウト、ナビゲーションプラグイン、フォーム、スライダー&カルーセルプラグイン、チャート&グラフプラグイン、イメージエフェクトプラグイン、ビデオプラグインなど。チェックしておきたいです。海外カジノ オンラインサイトの制作はワードプレスのプラグインを利用して様々な機能を付け加えて完成させることができます。2012年のjQueryプラグインまとめでは、デザインの一新や個別のカスタムにも対応した国際的で魅力的なサイト作成に役立つ情報を紹介しています。
「いま、並列処理の壁というコンピュータサイエンス史上最大の課題に直面しています。しかしこれはチャンスでもあります。新しい時代を切り開いていきましょう」。IBM名誉フェローのFran Allen氏は、昨日3月10日に行われた日本の情報処理学会創立50周年記念全国大会の招待講演の演壇からこんなメッセージを聴衆に投げかけました。 Fran Allen氏は、コンパイラやプログラミング言語が専門で、女性で初めてチューリング賞を受賞した人。今回の招待講演のためにわざわざ来日したと紹介されました。 講演のタイトルは「The Challenge of the Multicores」。ここからは、Allen氏の講演の内容を紹介しましょう。 (この講演は英語で行われたものです。内容にはできるだけ正確を期したつもりですが、理解不足のところや聞き取れなかったところもありました。もし誤解や不正確なところがありました

正式名称は『A HOWTO on OptimizingPHP with tips and methodologies』ですね。PHPの最適化に関する文書です。PHP4の時代に書かれたものですが、今でも通用する内容だと思います。 この週末を使ってコレを読んでたので、ついでに和訳しました。 かなり意訳&拙い翻訳ですが、何かしらのお役に立てればと思って載せます。 情報古かったり個人的に縁のない部分は省略したりしました。 ポロリもあるよ! —–ココから和訳—– やあ! こいつの最終更新日は2009年9月30日だよ! ベンチマークはちょっと古いかもしれないけど、一般的なアドバイスとしてはまだまだイケるんじゃないかな! 8年間やってきた中でいちばん需要なのはキャッシングだって気付いたからそこんとこは修正したよ。 まあ、squidとmemcacheについて付け加えたんだけどね。 変更事項について知

グーグルが高速プロトコル「SPDY」をChromeブラウザで有効化。Gmailなどで利用を開始していたグーグルがより速いWebを実現するために、HTTPを高速化した新プロトコル「SPDY」を開発中であることは、昨年夏に公開した記事「グーグルがWebを高速化するために何をしているか」で紹介しました。 SPDYの話題はその後ほとんど見かけなくなりましたが、グーグルはそのSPDYをChromeに実装し、同社のサービスで利用していることがニュースサイトConceivablyTechの記事「GoogleChrome Gets SPDY – And An OnscreenKeyboard」で指摘されています。 なぜグーグルはひっそりとSPDYを有効化したのだろう? SPDYとは従来のWebのプロトコルであるHTTPを改良し、毎回同じ情報がやりとりされるヘッダの情報を圧縮したり、リクエストの回数

fladdictの非公式プロジェクト(いわゆる裏dicct)に、posemaniacs.com というサービスがある。 絵のデッサン素材を無料配信するサイトだけど、いつのまにやら老舗サイトに。気がついたら1日の転送量が30〜40GBまで膨れ上がっていた。あまりの負荷にホスト元のhetemlさんでアクセス規制、あわや閉鎖の危機の大ピンチ。わりと本気で、Pixivとか星海社とかマール社にサービス譲渡とかしようか悩んだ今日この頃でした。 そんな折、@ku_suke さんのご了解で導入してみた、CloudFlareというサービスが、全ての危機を救ってくれた。マジ多謝です。 どういうサービス?CloudFlareはCDN(広域負荷分散システム)。世界5カ所にデータセンターを有し、データをキャッシュして各地に配信するこで負荷分散してくれる。いわゆるAkamaiの同類だけど、ものすごい特徴が1つある。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く