General InformationDocumentationDeveloper Articles & TopicsCommunity ForumsBlogUniversity
tmaesakaさんがやってくれました。 ずいぶん前からSQLのベンチマークを測定するのに使いやすいプログラムないかなーと思ってました。個人的にはmysqlslapというのを使ってたのですが、幾らか気に入らない所があったりコマンドラインオプションが複雑で毎回 --help を読んだりしていました。余計な機能なんかなくて、指定したSQLを高速にくりかえしてくれる物が欲しいなぁって思ってたんです。 とあるIRCでこの前、tmaesakaさんから「いま作ってる」という話を聞いて、いろいろ要望を言ってたんですが、ついさっきチュートリアルが公開されました。速いw 名前はskyload。とても小さく、実装コードだと800行程度です。しかもオプションが少ないので使い方が単純です。試しに適当な INSERT の速度を測ってみました。 $ skyload --server=localhost --mysql
シンプルでスケーラブルな分散ストレージを自社開発したライブドア 一方ライブドア執行役CTOの池邉智洋氏は,同社のブログや写真投稿サービスなどのインフラで利用中のストレージ仮想化ソフトを自社開発した事例を紹介した。ライブドアのサービス群が求める要件が「いかに安価に容量を追加できるか。過剰な機能と信頼性は不要」(池邉氏)と判断。メーカー製のネットワーク・ストレージの利用を止め,「ファイルのパスがそのままURLになるため,ファイル・システムのパスをURLに変換しなくて済む」HTTPで入出力する分散型仮想ストレージの開発に踏み切ったのだという(写真4)。 設計思想は「複数ノード間の一貫性はCAP定理に基づいて遅延を妥協し,スケーラビリティと読み出しの速さにこだわった。一方で書き込みはそこそこの速度でよく,認証とアクセス制御はアプリケーションで実装するので不要」(池邉氏)というもの。HTTPサーバー
先週、AMD主催のセミナーで「はてなでの仮想化技術の使い方」という発表をしてきました。 はてなでは、1年半ほど前から仮想化技術に取り込んでおり、現在では300台以上のサーバが仮想化されています。仮想化技術には、様々なメリットがありますが、はてなではサーバリソース利用率の向上と、システムの安定化の二つの利点を重視しています。サーバを仮想化していく際に、どのようなポリシーで一つの物理的なサーバに仮想化ホストを積み重ねているか、とか、実際どれぐらい効率を上げられているか、とか、あとAMDさんのセミナーなので、消費電力的にはOpteronが実測結果からは10〜20%程度効率がいい(負荷時にOpteron 1.82A, Xeon 2.17A)、というあたりの話をしてきました。 How to use Virtualization Technology in HatenaView more presen
KLab Advent Calendar 2011 「DSAS for Social を支える技術」の9日目です。 前回は php を動かしている Apache の手前にリバースプロキシを 置く必要性を解説しました。 今日は、 その前の php のプロセス数を絞る設定と合わせて、実際に Apache で 設定する方法を紹介します。 以降、 php を動かしている Apache の事をアプリサーバー、リバースプロキシ+ 静的ファイル配信を行っている Apache の事をプロキシサーバーと呼びます。 基本設定 まずは基本的な設定のおさらいです。 アプリサーバー 並列数を絞るには MaxClients を設定します。アプリがどれくらいの時間を CPUの処理で使って、どのくらいの時間を外部リソース待ちに使っているかにも よりますが、だいたいCPU数の1.5倍〜2倍くらいが適当だと思います。 Hyp
こんにちは、運用部 アプリ運用グループの清水です。モンスト仲間募集中です。 以前、Fedora 8からFedora 17への移行のお話を書きました。Fedora 17ではsystemdがデフォルトで使われています。そのsystemdを本番環境で運用して1年以上が経ち、様々な経験をしてきました。systemdの環境で知っておくと役に立つと思われることについていくつか紹介したいと思います。 まずは、systemdの概要について簡単に紹介します。 systemdの概要と歴史 systemdは、従来のSysVinit/Upstartに代わるもので、Linuxサーバの起動時に初期設定やサービス起動をおこなうことにとどまらず、プロセスやリソースなど様々な管理をおこなうデーモンです。 Fedora 14の頃(2010年11月リリース)にTechnology Previewとして提供され、Fedora 1
■ドキュメントキャッシュ機能の見直し メモリキャッシュやディスクキャッシュなど、HTTPコンテンツの動的キャッシュ機能が強化されました。開発バージョン時よりも安定性が向上し、Apache 2.2では実用的なレベルになっています。キャッシュ機能を用いることで、一般的にHTTPサービスの応答性を向上させることができます。 また、Apacheをリバースプロキシサーバとして利用する場合もキャッシュ機能を利用可能です。 ■プロキシ機能によるロードバランシングの実現 プロキシでロードバランス機能を実現するmod_proxy_balancerモジュールが追加されました。HTTPやFTPサービスはもちろん、Apache Tomcatなどのサーブレットコンテナとの通信で使われるAJP13プロトコルのロードバランス機能も提供します。 バランシングの制御は、「リクエスト回数」と「トラフィック量」の2つのアルゴリ
SREチームの@cubicdaiyaです。今回はnginxによるTCPレイヤーでのロードバランスについて解説します。 ロードバランサーとしてのnginx nginxはHTTPやTCP、UDP等の複数のレイヤーでロードバランサーとして稼働させることができます。(TCPロードバランサーは1.9.0以降、UDPロードバランサーは1.9.13以降で利用可能です) また、ngx_http_ssl_module や ngx_stream_ssl_module を利用することでそれぞれのレイヤーでTLSを有効化することも可能です。 TCPロードバランサー用のモジュールを有効にする HTTPレイヤーでロードバランスするためのモジュールはデフォルトで組み込まれますが、TCP(とUDP)レイヤーでロードバランスするにはnginxのconfigureスクリプトに--with-stream(あるいは --with
kazeburo さんが開発をされているサーバリソースの可視化ツール「CloudForecast」ですが、個人的に使ってみていてとても使いやすいなと思っています。もっと使ってくれる人が増えるといいなと思い、自重せずに入門エントリを書いてみました。 CloudForecast って何? そもそも何なの?という話ですが、CloudForecast とはリソースのグラフ作成ツールとして有名な「RRDTool」の薄いラッパーとして作られています。記述言語は Perl ですので、Perl と RRDTool の使い方が大体分かっている人にとっては導入さえしてしまえばかなりかゆいところまで手が届く=カスタマイズが簡単かつ自由自在なツールだと思います。とりあえずのイントロとしては kazeburo さんの YAPC::Asia 2010 でのこちらのスライドをご覧頂ければと思います。 RRDTool っ
hashicorp/serf Serf Serf使ってますか!サーフ! 諸事情というか大人の事情で急遽自前でロードバランサを用意しないといけなくて、それをissueに書いてたら、 あんちぽさんがSerf+HAProxy使ったらいいのでは、 とIRCで助言をくれて、同日のmizzyさんのブログでもSerfに言及していたので、 ちょっとSerfの概要を知るためと、Serf+HAProxyが実際ロードバランサとしてどんな感じに使えるのか検証してみた。 I told @glidenote about a combination of Serf and HAProxy this morning, and he has already implemented the arch. and done investigation… — kentaro (@kentaro) October 29, 2013
こんにちは、 id:yanbe です。 全文検索エンジンLucene上に構築されたSolrという検索ミドルウェアがあります。拡張性・カスタマイズ性に富み、既存のデータのインポート機能が豊富なのもあって、広く利用されています。 参考: Solr - Wikipedia 国内のウェブサービスでのSolrの採用事例を挙げるとNAVERやCookpad、アメーバなどがありますが、はてなでも以前より一部のサービスでSolrを採用しています。 Solrの公式ドキュメント(英語)はwiki形式で提供されており、網羅的な情報はこちらで手に入ります。また、Solrの基本的な使い方を学べるチュートリアルもありますが、「すでにある典型的なLAMP構成のウェブサービスにSolrによる検索機能を組み込む」までには、ここからさらに多くの情報を調べる必要があり、Solrの導入のハードルとなっていると感じました。 そこで
IBMのサイトに、PHPから操作するデータベースに関してよく見られる5つの問題点とその解決方法が掲載されています。 データベースのデザインをする際、一般的に発生する問題点についての解説です。 で、肝心の5つの問題が何かというと、以下の通り。 Five common PHP database problems 1つめは古いPHPのコードでは直接、データベースにアクセスしているということ。コレに代わる手段としては、PEARのDBモジュールを使うか、あるいはPHPデータオブジェクト、PDOのクラスを使え、とあります。 2つめは、オートインクリメントを使わないということ。MySQLは基本的にレコード1つについてユニークなIDをオートインクリメントしているわけですが、これを活用していないというパターン。オートインクリメントを有効に使っていない場合、非効率的であるだけでなく、負荷も高くなるそうです。解
ConsistentHashing - コンシステント・ハッシュ法 目次 この文書について コンシステント・ハッシュ法 実例 実装 用途 コンシステント・ハッシュ法 この文書について "Tom White's Blog: Consistent Hashing" の日本語訳です. http://weblogs.java.net/blog/tomwhite/archive/2007/11/consistent_hash.html 推敲歓迎: 誤訳, タイポ, 訳語の不統一, そのほか... 原文のライセンス: http://creativecommons.org/licenses/by-nc-sa/2.0/ 私は今までに何度かコンシステント・ハッシュ法にとりくんだことがある。 このアイデアをあらわした論文 ( David Karger らによる Consistent Hashing and R
RestWiki をたまに見直すと新たな発見があって面白い。 たとえば先日、「ステートレスなやりとりとは何か(What is Stateless Interaction?)」という箇所を見つけて、興味深く読んだ。このページは以前も絶対に読んでいるはずなのだが、 人間は忘れてしまうものである。 RestWiki の例でも充分わかりやすいのだけれど、自分でも例を思いついたので書きとめておく。 ステートフルサーバとステートレスサーバはどう違うのか。 まずは、ステートフルの例: 客: こんにちは 店員: いらっしゃいませ。○○バーガーへようこそ 客: ハンバーガーセットをお願いします 店員: サイドメニューは何になさいますか? 客: ポテトで 店員: ドリンクは何になさいますか? 客: ジンジャーエールで 店員: +50円でドリンクをLサイズにできますがいかがですか? 客: Mでいいです 店員:
Guilt is usually considered a negative emotion, but by steering it well, you can achieve surprising success.
昨日は BKCon 2006 に行ってきた。 BK というのは「一般的にはバッドノウハウの事」なんですが、昨日のは、BKCon と言っても、かつて開催された Bad Knowhow Conference 2004 の続編とかではなく、"B"atara "K"esuma "Con"ference 2006 です。 ※正しくは横浜 Linux ユーザグループ主催の「第 65 回カーネル読書会」のテーマ "mixi.jp: Scaling Out With Open Source" です。 ちなみに、Batara Kesuma さんというのは、株式会社ミクシィの取締役。 mixi の裏側を見せますというか、ちょっと hip な言いかたをすれば "Inside mixi's backend" ってカンジです。 とりあえず、プレゼン内容は YAPC::Asia の時と大凡同じでしたが、プレゼンの持ち
サーバのチューニングをする上でかなりやっかいなのがデータベース系。特にログファイルの量が膨大になると後から中身を見て問題を分析するのも一苦労という場合が。そんなときにこのMySQL用topコマンド「mytop」を使えば一体何が起きているのかがすぐにわかるので問題点の把握が容易になります。ベンチマークするときに併用すればかなり効率が良くなるのではないかと。 インストールと使い方は以下の通り。 まずは「mytop」から。以下が公式サイト。 mytop - a top clone for MySQL http://jeremy.zawodny.com/mysql/mytop/ マニュアルは以下にあります。 mytop - display MySQL server performance info like `top' インストールするにはSSHなどを使ってrootでログイン後、wgetでファイル
こんにちは。システム本部技術部たんぽぽGの森本です 補足を追記しました (2010/08/20 15時) 先日のmixi大規模障害についての続報です 今回は小ネタはありません はじめに まず初めにtwitter/blogなどを通じて今回の問題の解析を行っていただいたみなさんに感謝の言葉を捧げたいと思います kzk_moverさん stanakaさん mala(bulkneets)さん llameradaさん (順不同) ありがとうございました 書き漏らした人ごめんなさい memcachedはすごい 今回の件でmemcachedに対して不安感を持たれた方もおられるとお聞きしました 説明不足だったせいで誤解を与えてしまい申し訳ありません きちんと設定および監視を行っていれば通常の使用にはまったく問題はありません 弊社にて -c 30万で起動したmemcachedに対して、先のテストスクリプトに
POST /post HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 7 foo=bar 1行目は request-line で、 method URI HTTP-version の形をしています。URIはホストを含めた絶対URIの場合と、ホストを含めない絶対パスの場合がありますが、絶対パスの方が一般的です。 2行目から空行までが request-header です。各行は field-name: field-value の形をしています。 field-name は大文字小文字を区別しません。 request-line から request-header とそれに続く空行まで、改行は CR LF になってます。Windowsでよく見る改行コードですね。 meth
Linux、Windows、FreeBSD、Mac OS Xで動作可能なサーバモニタリングソフトウェアです。フリーで利用できるバージョンであっても商用利用可能で、30個までのサーバを一元監視することができます。 HTTPなどの各種サービスの監視はもちろん、CPU負荷やメモリ、温度の詳細なグラフ出力やレポート出力も可能。サービスが落ちたかどうかの判断基準や、落ちた場合の通知方法はグラフィカルに条件分岐のダイアグラムから作成可能で、その際に実行するスクリプトなども指定できます。 ソフトウェア自体は監視するBixAgent、監視エージェントから送られてきた情報をまとめるBixServer、そしてその監視結果を表示して確認するためのBixDesktopで構成されています。 詳細は以下の通り。 BixData | Cluster and Systems Management http://www.b
というわけで、再び負荷を下げる方法を模索した、戦いの記録。 1.MySQLの設定を変更して高速化 2.Zend Optimizer 3の導入 3.ionCube PHP Acceleratorの導入 4.テンプレートの見直しでクエリーを減らす 5.robots.txtでクロールする間隔を制御する 6.MySQLの設定を負荷を低くする設定に変更 7.キャッシュを有効化する 前回解説した「GIGAZINEのLoadAverageを「27」から「2」へ下げた方法」から約3週間後、6月20日(火)の夜、気がつくと負荷の15分平均は「25」をコンスタントに吐き出すようになり、さらに訪問者は急増、ついに6月28日(水)12時45分、負荷対策の効果がほとんど出ないまま、LoadAverage15分平均は「86」に…。 何か対策が根本的に間違っているのだろうか?それとも、もうGIGAZINEサーバのハード
こんにちは、宇津井です。 弊社ではゲソてんというゲームプラットフォームを運営しております。ゲソてんではサービスリリース当初から主にキャッシュ的な役割でRedisを導入していました。つい先日の事ですが訳あってRedis 2.6からサポートされたRedis Sentinelを採用しました。今回は、採用に至った経緯をご紹介します。 簡単なシステム構成 パフォーマンスは良いし、Memcachedには無い便利な機能を提供するRedisですが約一年間運用していくつかの問題が出てきました。 Redisサーバーが突然高負荷に陥るするとWebサーバーも高負荷に陥るRedisのReplicationは張ってるけどアプリケーション側でRedis Slaveへフェイルオーバーしない(MySQLを直接参照する)Redis落ちると恐らくMySQLサーバーが耐えられない(落ちた事無いけど)という事で対策を行ってきました
OpenRestyはnginxのほかにngx_luaをはじめとするCで書かれた各種サードパーティモジュールとngx_luaのAPIを利用したrestyモジュール、そしてLua/LuaJITで構成されています。 OpenRestyに含まれているnginx自体は本家のnginxと基本同じなので、別にOpenRestyを利用しなくても自分でngx_luaを組み込んだり、サーバ上にrestyモジュールを配布することで似たような環境を構築することは可能ですが、OpenRestyであれば主要なモジュールやライブラリが./configure、make、make installの一連の流れですべてゴソッとインストールされますし、OpenRestyのconfigureスクリプトはnginxのconfigureスクリプトを継承したものなのでnginxのconfigureオプションをほぼそのまま利用することもで
KOF 2008 での発表資料「はてな流大規模データ処理」を以下にアップロードしました。 http://bloghackers.net/~naoya/ppt/081108huge_data.ppt 一部参考文献からの引用 (Introduction to Information Retrieval から Vector space model の図、たつをの ChangeLog から転置インデックスの図) があります。この場を借りて感謝。 環境によってはおそらくフォントの表示がいまいちだと思いますが、ご了承ください。 追記 SlideShare にアップロードしました。 081108huge_data.pptView SlideShare presentation or Upload your own. (tags: linux mysql) 追記: メモリはディスクの 150 倍について
Twitterの大規模システム運用技術、あるいはクジラの腹の中(後編)~Twitterのサブシステム「Unicorn」「Kestrel」「Flock DB」 米サンタクララで行われていたWebサイトのパフォーマンスと運用に関するオライリーのイベント「Velocity 2010」の、Twitterのシステム運用について説明するセッション「In the Belly of the Whale: Operations at Twitter」(クジラの腹の中:Twitterでの運用)を紹介をしています。 この記事は「「Twitterの大規模システム運用技術、あるいはクジラの腹の中(前編)~ログの科学的な分析と、Twitterの「ダークモード」」の続きです。 Twitterのサブシステム「loony」「Murder」「memcached」 ここからはTwitterのサブシステムについて紹介しよう。 T
id:hirose31くんがロードバランサについてあれこれ書いてる. そんなわきゃない>DNS RRはロードバランサの座を奪い返せるか この間彼から教えてもらったんだけどLVS(LinuxVirtualServer)は結構すごいという話. 「でも安定性がぁ」とか「ASICには勝てないよね」といかいうやつは、まずは試してみてみー きっとびっくりするから。 ロードバランサの1運用形態であるDSR(Direct Server Return)を知らない人だと「ソフトウェアでロードバランサ?ありえねー」とか思っててもしかたないと思う.DSRを知らないといつまでもベンダーに高いお金を払うことになるのでチョロチョロ書いてみる. DSRを知らない人がロードバランサーに持っているイメージは図の1の通りだと思う.つまり HUBを通してリクエストがロードバランサに届く(1,2) ロードバランサは適当にバランシン
(Last Updated On: 2014年12月5日)前回のエントリでイメージファイルにスクリプトを埋め込んで攻撃する方法について記載しましたが、最近イメージファイルにスクリプトを埋め込む事例が話題になったためか ha.ckersにJavaScriptをイメージファイルに隠す方法が紹介されています。 http://ha.ckers.org/blog/20070623/hiding-js-in-valid-images/ <script src="http://cracked.example.com/cracked.gif"> などとXSS攻撃を拡張する手段に利用可能です。サンプルとしてFlickerにJavaScriptを埋め込んだイメージファイルがアップされています。 このイメージファイルは上手く細工しているので画像としても表示され、JavaScriptも実行できます。 Flicke
ありがたいことに、3年前に#ssmjp 2017/06で話したスライド AWS LambdaとDynamoDBがこんなにツライはずがない #ssmjp をTwitterで紹介して頂いた*1 ようで、当時から大幅に改善しているところを振り返りたいと思います。あと、ついでに最近やっているAzureに関しても少し触れていきます。 サーバーレスアーキテクチャ #とは 当時はこう説明したのですが、今でもそんなに悪くない表現かなと思います。 書籍は現在「Serverlessを支える技術 第3版」まで出ていますので、BOOTHからどうぞ(隙あらばダイマしていく方針)。 サーバーレス三種の神器 今このスライドを作るなら、認証認可の話を入れるかなと思います。システム内のAWS IAMとクライアント側のCognitoどちらも重要です。 ちなみにAzureを含めておさらいすると、こんな感じの対応になります。 勝
自分が作ったWebサービス、将来大きくなってもシステムは大丈夫なんだろうか? そんな不安を抱きながらWebサービス開発に携わっている方も多いでしょう。あるいは、毎日毎日システムが悲鳴を上げる、どうしたらこの状況を看破できるんだろう? 成長したWebサービスを前に、困っている技術者の方もいるかもしれません。 筆者も、まったく同じ経験をしてきました。 月間1,500万人が訪れる、はてなというサイト。その大規模システムの開発と運用に、筆者らは取り組んでいます。1,000台のホストが、その負荷を捌きます。100万人以上のユーザによってブログやソーシャルブックマークに投稿され続けるデータは日々大きくなっていき、サーバリソースを逼迫させます。ギガバイト、テラバイト単位のデータ量が技術者たちを悩ませます。それでもトラフィックの波は収まることを知りません。 (中略) どうしたらこの怪物、大規模サービスを抑
「LOAD IMPACT」はサーバの負荷テストができるサイトです。 サイトによりけりですが、数分から10分程度で完了します。(途中中断できます) 自宅サーバなどを立ててる方はチェックしてみると面白いかも。 当サイトでもやってみました。 (※悪用厳禁ですよ) 以下に使ってみた様子を載せておきます。 まず「LOAD IMPACT」にアクセスします。 無料登録ができますが、登録なしでも測定可能です。 負荷テストしたいURLを入れます。 有料プランがありますが、左側の無料プランで最低限のチェックは可能です。 負荷テストの結果です。 ユーザのロード時間がグラフで表示されています。 右側で結果を切り替えられます。 (ちなみにこの機能を使うには、無料登録が必要です。) 帯域幅の使用量でしょうか。 サイトをお持ちの方はチェックしてみてはどうでしょう。 (本記事で紹介したサイト:LOAD IMPACT)
今回は、まだ全然底が見えていないAuroraのガチンコ検証となります。公式資料に、発表当初の簡単な検証数値もありますが、自分でやらないと理解できない部分が多くあるためです。 既にAuroraにするだけで従来より速くなる説は有力ですが、なぜ速くなるのか、どのような点に注意を払って運用すべきなのか、といったことを理解するために、より局所的な検証をいくつか行って考察していきたいと思います。 目次 楽しい検証になって長くなりましたので、目次を置いておきます。 はじめに クエリのレスポンスタイム クエリキャッシュ CPU利用率とIOPSの性質 データ容量とストレージ性能の関係 インスタンスタイプとストレージ性能の関係 運用面の色々 何がボトルネックになるか はじめに いくつか前提的なものを。 ベンチマークは全て、sysbench を使ってテストデータ作成・ランダム参照/更新クエリを実行しています デ
「HerokuでWebアプリ開発を始めるなら知っておきたいこと」シリーズの第1回では、無料の範囲で使えるHerokuの基本スペックについて書きます。このシリーズのまとめページはこちら。 Herokuとは まず本題に入る前に、さらっとHerokuについてご紹介します。 Herokuは、ヘロクと読みます。HeroとHaikuを掛け合わせた造語だそうです。私は「ヘ↑ロ→ク↓」と発音してしまいがちですが、他の人の発音を聞いていると「ヘ→ロ→ク→」が多いような気がします。 2011年7月7日に行われた「Heroku-ja meetup #1」というイベントでは「ヘ↑ロ→ク↓」と発音する人が多かったです。 Herokuを誤解を恐れずにものすごく大雑把かつ極端に説明するといまどきのレンタルサーバーやいまどきのホームページスペースです。2010年代のジオシティーズです。年齢がバレますね。 もう少し技術者向
先月の台風19号で記録的な大雨となった際に各地の自治体ではホームページを通じて防災情報を伝えていましたが、NHKがSNSへの投稿を分析したところ、当時、関東から東北にかけての少なくとも11の都県の合わせて53市区町村でホームページがつながりにくい状況になっていたとみられることが分かりました。 これについてNHKでは、国の情報通信研究機構が運用する災害時のツイッターの投稿を解析する「DISAANA」と呼ばれるシステムを使って、台風19号が接近した先月12日から14日にかけての投稿を調べました。 その結果、「ホームページが見られない」とか「サーバーがダウンしている」など、自治体のホームページがつながりにくいこと示す投稿が寄せられていたのは東京都や埼玉県、それに長野県など、関東から東北にかけての少なくとも11の都県、合わせて53の市区町にのぼることが分かりました。 こうした地域の多くは、特別警報
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く