先週金曜日、BPStudy#25で、「パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ」という題目で話をさせていただきました。その際に使用した発表資料は以下のとおりです。 1. Happy Optimization 最初に、最適化の考え方として、上限値を予測し、それを元にリソース配分を考える、という手法を説明しました。
先週金曜日、BPStudy#25で、「パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ」という題目で話をさせていただきました。その際に使用した発表資料は以下のとおりです。 1. Happy Optimization 最初に、最適化の考え方として、上限値を予測し、それを元にリソース配分を考える、という手法を説明しました。
株式会社ライブドア マークアップエンジニア 浜 俊太朗 2009/3/24 FirefoxやYSlowを使ってWebサイトの問題点を探るには? ライブドアブログを速くした著者が7つのポイントを伝授します(編集部) Webサイトは“見た目”が重要なのは当たり前だが…… 皆さんはWebサイトを作るときに、どのようなことを意識していますか? デザイナや主にHTMLのコーダー/マークアップエンジニアと呼ばれる職種に就いている人は、やはり“見た目”を強く意識しているのではないでしょうか。 例えば、複数のWebブラウザで同じか近い表示になるようにとか、リリース後の更新業務によって表示崩れが起きないように、などです。もちろんそれは職種の適性として正しいものですが、実はほかにも意識した方がよい重要な要素があるのです。 良い印象を与えるには、“速度”も重要 Webサイトを見たユーザーが、良い印象を受けるのか
「発表者が自分よりも若い人ばかりだ」。外見が20代にしか見えない東京工業大学の首藤一幸准教授(1973年生)の驚くさまが、少し面白かった。2009年2月20日の夜、多くのWeb企業が注目する「キー・バリュー型データストア」を開発する若手技術者が、東京・六本木のグリー本社に一堂に会した。 キー・バリュー型データストア(またはキー・バリュー型データベース)は、大量のユーザーとデータを抱え、データベースのパフォーマンス問題とコスト高に頭を悩ませるWeb企業が注目する技術である。記者は同日に開催された「Key-Value Store 勉強会」に参加させてもらった。午後7時から11時まで、キー・バリュー型データストアを開発・研究する若手技術者が立て続けに登場し、1人15分の持ち時間で成果を発表し、議論を重ねるという集まりだ。 呼びかけ人であるプリファードインフラストラクチャー(PFI)最高技術責任者
ついに,MySQL 5.1.30 GA(GeneralAvailability)がリリースされた。MySQL5.0から3年の歳月をかけて,多くの新機能を搭載した意欲的なバージョンとなっている。 しかし,現時点では,多く(約180)のバグが残されている。そのため,本番システムに適用するには細心の注意が必要だ。米Sun Microsystemsでは,十分なテストを実施した上での本番システムへの適用を呼び掛けている。 MySQL 5.1はパーティショニング,イベントなど多くの新機能を搭載しているが,注目したい点は,レプリケーション機能の強化だ。今回は,MySQL5.1で信頼性の高い機能に成長したレプリケーション機能を紹介する。 MySQL 5.0までのレプリケーションと問題点 MySQLには,手軽なレプリケーション機能が搭載されている。構築が容易でレスポンスが高いことが特徴だ。これにより,データ
現在開発中のPostgreSQL 8.3は,まもなく「フィーチャーフリーズ」(機能の確定)となる。5月中にはβテストに入り,早ければ7月にも正式リリースがありそうだ。 8.3では,性能面に関する大幅な改良がある見込みだ。中でも注目されているのがHOT(Heap Only Tuples)である。 HOTとは HOTは一口で言うと,PostgreSQLの更新性能を改善する仕掛けである。HOTについて説明する前に,なぜPostgreSQLの更新性能が問題になるのか説明しよう。 PostgreSQLの更新処理の弱点 PostgreSQLは追記型のアーキテクチャを採用しており,更新は,内部的に削除してから新しい行を追加することで実装されている。削除して不要になった行はVACUUMコマンドで再利用可能領域として回収,再利用される。更新処理を頻繁に行う場合はVACUUMも頻繁に実行しなければならない。で
森川です。恥ずかしながらmemcacheを使うくらいならtmpfsとかMySQLのHEAPテーブルを使えばいいじゃん、などと思っていたのですが、今回簡単なベンチマークをやってみて心を入れ替えました。 はい、memcacheは偉大です。すごく速いです。 テストとして10万件のデータをINSERTして、そこから該当するデータを10万件取得します。まずはmemcacheを使用した場合です。 今回はdagレポジトリのRPM版memcachedとソースからインストールしたPHP 5.2.3を使用してpecl installでmemcacheエクステンションをインストールしています。memcachedの設定はデフォルトのままです。 # yum install memcached # pecl install memcache # vi /usr/local/lib/php.ini extension=
株式会社ミクシィ 開発部 システム運用グループの長野です。普段はミクシィのアプリケーション運用を担当しております。今回から数回にわたり、最近Webアプリケーションのスケーラビリティの分野で話題になっているmemcachedについて、弊社開発部 研究開発グループの前坂とともに、使い方や内部構造、運用について解説させて頂きます。 memcachedとは memcachedは、LiveJournalを運営していたDanga Interactive社で、Brad Fitzpatrick氏が中心となって開発されたソフトウェアです。現在ではmixiやはてな、Facebook、Vox、LiveJournalなど、さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる重要な要素になっています。 多くのWebアプリケーションは、RDBMSにデータを格納し、アプリケーションサーバでそのデータ
データベース管理システム=データ加工エンジンと心得よ 用語辞典※などを参照すると、「データベース」という言葉は1950年代に米軍で使われ始めたようです。各地に点在していた膨大な情報を1か所の基地(Base)に集めたことからData Base(データの基地)という言葉が生まれ、ここから「特定のテーマに沿ったデータを集めてコンピュータ上で管理し、容易に検索/抽出などの再利用をできるようにしたもの」という意味を表すようになりました。 このデータベース、皆さんは有効活用されているでしょうか? 普段からOracleなどを扱っている技術者でも、データベースを単なる「データの保管場所」としてしかとらえてない傾向があります。データの加工/集計は外部のプログラム言語で行い、データベースは結果を格納する入れ物としてしか活用していないのです。 もちろん、データベースを使用する第一の目的は、整合性/トランザクショ
第1回 CGMサイト構築で悩む負荷対策と拡張性の確保 林田 幸一 株式会社Cuon 2008/8/4 Rubyを使った大規模エンタープライズ開発が始まっている。Ruby on Railsでの開発において、インフラやアプリケーションアーキテクチャをどのように構成すべきかを考える(編集部) 最近、Ruby on Rails(RoR)で構築されているCGM(Consumer Generated Media)サイトやコミュニティサイトが確実に増えてきている。例を挙げるまでもないが、Twitter、食べログ、iknowなどだ。 RoRの採用の理由として、 実験的なプロジェクトとして。最近評判のRoRを次期言語・フレームワークとして評価するため 人材採用のためのコマーシャル 開発リーダーやマネージャが純粋にRuby好き など、会社レベルから個人レベルまでさまざまな採用理由が存在する。 われわれの会社(
write はページに dirty フラグを立てるだけなので決してユーザープロセスを待たせない って、本当にそうなんでしょうか?(否定しているわけではなく、純粋な疑問です。) と質問をもらったので、最近追ったことをここでまとめます。かなり長文です、すいません。また、まだまだ不勉強なので間違っているところもあるかもしれません。ツッコミ大歓迎です。 まず、オライリーのカーネル本の 15章 ページキャッシュ 15.3 汚れたページのディスクへの書き込み から引用。 ご存知のように、カーネルは、ブロック型デバイスのデータを含むページをページキャッシュに蓄えています。プロセスが何らかのデータを更新した場合は、必ず対応するページに汚れている印をつけます。すなわち、PG_dirty フラグを設定します。 UNIX システムでは、汚れたページのブロック型デバイスへの書き込みを遅延することができます。この方
大量のデータを1つのテーブルに格納すると何かと不便となる。処理対象が大量だけに検索をはじめとして処理時間が大きくなる。現実の生活は、手に余る大量の物を小分けにするというテクニックをよく使う。データベースでもこの手法は有効である。大量データを小分けにすることで、処理の高速化と格納効率を向上することが可能である。今回は、MySQL 5.1の新機能の筆頭に上がっているパーティショニングを解説する。 MySQL 5.1の注目機能パーティショニングとは パーティショニングとは、テーブルを分割して性能を向上させるための技術だ。MySQL 5.0でもテーブルの分割機能はあった。複数のテーブルを連結して1つのテーブルに見せかけるMARGEストレージエンジン(テーブル)、SELECTステートメントを結合するUNIONなどがある。これらの機能は、もともと別々のテーブルを結合して処理する後処理的な位置づけになる
普通の帯域節約術としては、mod_deflateでdeflate圧縮するとか、CSSやJSファイルのHTTPレスポンスヘッダにLast-ModifiedやEtagを追加しておいて、ブラウザがHTTPリクエストヘッダにIf-Modified-SinceやIf-None-Matchを付加するようにし、コンテンツが変更されていなかったら304 Not Modifiedを返すという方法を取るかと思います。 しかし、HTTPサーバーはコンテンツの数だけ304 Not Modifiedを返さないといけないため、その分帯域を消費しますし、またCSSや画像などのパーツの304 Not Modifiedが返ってくるまで、そのパーツのレンダリングが行えないという問題があります(つまり体感速度に影響します)。 今回紹介するのはExpiresヘッダやCache-Control: max-age=31536000を
JavaScriptやCSSを動的にdeflate圧縮するのではなく、あらかじめ圧縮しておいたものを配信することでサーバーのCPUリソースを節約する prototype.jsを10KBにする方法やSafari と gzip 圧縮 JavaScriptなどですでに述べられてることですが、mod_deflateでリクエストがある度にアセット(CSSやJavaScript)にdeflate圧縮をかけるのは、deflate処理が軽いからと言っても、塵も積もれば馬鹿にならない(WWWサーバーやAPサーバーに本来使って欲しいCPUリソースを蝕む)訳で、deflateしたいアセットには予めgzip圧縮してそれを配信し、サーバーのCPUリソースに優しいようにしましょう、というお話。 今回は、予めgzip圧縮するという作業を自動化するために、Railsでよく使われるデプロイツールであるCapistranoを
ハードウエアを変更せずにシステムの処理性能を向上させる極意は,プロセッサや主メモリー,外部記憶装置などのシステム・リソースを無駄なく効率的に利用することにある。具体的には,不要なプログラムの実行を避け,アクセス速度の遅い外部記憶装置への入出力を可能な限り減らすといった対策が考えられる。 総論 システムの処理性能を向上させる最も簡単かつ確実な方法は,PCを買い替えたり,新しいハード部品を導入することである。ただし,当然のことながら,新しいハードウエアの導入や不要になったハードウエアの廃棄には,コストがかかる。そう頻繁にPCやハード部品を購入するわけにはいかないのが現実だ。 そこで,PCの動作速度に不満を感じ始めたら,システム・チューニングを試してみてはいかがだろうか。システムの用途によっては,Linuxの設定を変更するだけで動作速度が大幅に向上する。 無駄を省いて資源を有効活用 システムのパ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く