タグ

チューニングに関するamari3のブックマーク (21)

  • ApacheとNginxの性能比較でevent_mpmの本気を見た

    はい、これは僕がいつも良く見るApacheとNginxの性能差に見えます。大体、ApacheはNginxの75%程度の性能に落ち着きます。数十バイトの静的コンテンツに対するリクエスト処理はNginxの得意分野だと思っていたので、大体こんなものです。 そこで、真面目にevent_mpmのチューニングを行ってみました。で、幾度となくベンチを試した結果導き出した、静的コンテンツに対する同時接続数100程度に対して最高のパフォーマンスを示すevent_mpmの設定は以下のようになりました。 [program lang=’apache’ escaped=’true’] StartServers 4 MinSpareThreads 4 MaxSpareThreads 4 ThreadsPerChild 2 MaxRequestWorkers 2 MaxConnectionsPerChild 0 [/p

    ApacheとNginxの性能比較でevent_mpmの本気を見た
  • MySQLチューニング虎の巻/ソートに関連するトピックとクエリの書き換え

    EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

    MySQLチューニング虎の巻/ソートに関連するトピックとクエリの書き換え
    amari3
    amari3 2012/01/17
    これは分かりやすい!
  • 大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~

    11月25日、「mobidec 2011」においてコナミデジタルエンタテインメントのスタジオITセンター長である正延光弘氏によるセッション「大ヒットSNSゲーム『ドラゴンコレクション』を支えるコナミのクラウド技術の活用」が行われました。 ドラゴンコレクションは、GREEで提供されている携帯電話向けのカードゲームタイプのRPG。プレイヤーは、エリアごとにある複数のクエストをクリアしていき、モンスターカードや「秘宝」を手に入れ、さらに「ドラゴンカード」を集めていきます。また、ほかのプレイヤーとバトルすることでも秘宝を入手できるというSNS要素も取り入れられていました。2010年9月のサービス開始後、順調にプレイヤー数を伸ばし、現在では登録人数が500万人を超えています。 サービス開始当初は社内でサーバを構築し、フロントエンドに6台のサーバ、バックエンドに3台のデータベースサーバ、そしてロードバ

    大規模ソーシャルゲーム「ドラゴンコレクション」運営の最前線で得られたノウハウ ~チューニングと運用、18のポイント~
  • php のプロセス数を絞ろう : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の7日目です。 @methane の新シリーズは Apache+php のチューニングです。 今日のお題は、タイトルのとおり、phpのプロセス数(=並列数)を減らすことです。 これはチューニンガソンでも人気のチューニングだったのですが、 今日はそのメリットをまとめます。 ロードアベレージが下がる プロセス数をコア数+α程度に抑えると、ロードアベレージがコア数の数倍〜 数十倍になることがなくなります。 例えばロードアベレージがコア数の100倍になると、1リクエストの処理に かかる時間は100倍以上に増え、せっかく処理したのにクライアント側が タイムアウトしていて完全に無駄骨になったり、最悪では再リクエストが来て さらに負荷が上がる負のスパイラルに陥る可能性があります。 たくさん一気に処理しよう

    php のプロセス数を絞ろう : DSAS開発者の部屋
  • 過負荷をかわす Apache の設定 : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の9日目です。 前回は php を動かしている Apache の手前にリバースプロキシを 置く必要性を解説しました。 今日は、 その前の php のプロセス数を絞る設定と合わせて、実際に Apache で 設定する方法を紹介します。 以降、 php を動かしている Apache の事をアプリサーバー、リバースプロキシ+ 静的ファイル配信を行っている Apache の事をプロキシサーバーと呼びます。 基設定 まずは基的な設定のおさらいです。 アプリサーバー 並列数を絞るには MaxClients を設定します。アプリがどれくらいの時間を CPUの処理で使って、どのくらいの時間を外部リソース待ちに使っているかにも よりますが、だいたいCPU数の1.5倍〜2倍くらいが適当だと思います。 Hyp

    過負荷をかわす Apache の設定 : DSAS開発者の部屋
    amari3
    amari3 2011/12/13
    もう一度読み直した
  • kernel/システムパラメタ - Linux Tips

    _ カーネル システム パラメタの設定 sysctlにより変更することの出来る、カーネル システム パラメタ(の一部)を紹介する。コンパイル無しで行える、カーネル チューニングだ。カーネル システム パラメタは、カーネルのバージョン毎に異なるので、詳しくは、 /usr/src/linux/Documentation/sysctl/README /usr/src/linux/Documentation/networking/ip-sysctl.txt /usr/src/linux/Documentation/filesystems/proc.txt % man 5 proc を参照。また、手元のGentoo Linuxでは、kernel-2.4のものとなっているが、 % man 7 tcp % man 7 ip で、tcp,ip関係のものを見ることが出来る。特にネットワーク関係については、

  • 見落としがちなLinuxのWEBチューニング | Act as Professional

    WEBコンテンツ配信にLinuxを使うのは一般的になりましたが、CentOSやUbuntuをはじめ、大抵のディストリビューションが低スペックなマシンでも動くような初期設定になっています。 トラフィックの上限でもない CPUリソースの枯渇でもない HDDのIOが遅い問題でもない コンテンツが重くなる(接続できない)というケースで、見落としがちなLinuxのネットワーク周りのチューニングについてです。 iptables関連iptablesを使用している場合、下記のパラメータを注意して下さい。 /proc/sys/net/ipv4/ip_conntrack_maxip_conntrackに記録できる最大値です。65536あたりが初期設定になっているかと思います。これだとパケットの取りこぼしがすぐに起きてしまいます。1コネクションあたり約350バイト消費するので、実装されているメモリに応じて値を変

    見落としがちなLinuxのWEBチューニング | Act as Professional
  • プロのサーバ管理者がApacheのStartServers, (Min|Max)SpareServers, MaxClientsを同じにする理由 - blog.nomadscafe.jp

    kazuhoさんが「プロのサーバ管理者の間では存在価値が疑問視されて久しい (Min|Max)SpareServers だと思う」と書いたり、hirose31さんが去年のYAPC::Asiaで{Start,{Min,Max}Spare}Servers,MaxClientsは同じにしているよと発表したり、実際前職のサーバはそのように設定されていたのですが、自分でうまく説明ができてなかったので、調べながら書いてみた。 当はイントラブログ用に書いていたものですが、がんばったので転載。 前提として、CPUの使用率におけるsystemとfork Re: クラウドがネットワークゲーム開発者にもたらしてくれたもの - blog.nomadscafe.jpでも書いている通りforkってのはサーバにとって重い部類の処理になります。つまり負荷の高いときにforkを大量に行うのはしてはならないことの1つです。

  • ORACLE チューニング INDEXを有効に使う

    ~ ご挨拶 ~ ど~も~☆道先案内人の「ユースク・アンタダレヤ」です。 今回、自分の経験を元に簡単にORACLESQLのチューニングが行なえるよ~♪ 的な覚書を残したいと思います。 あくまで個人的な覚書な感じなので、間違ってる部分や直したけど早くならないなど、苦情が出るかもしれませんが あくまで自己責任でやってください。 おらは責任取りませんぞ!! では、説明していきたいと思いますので、最後までお付き合いくだされ☆ ☆ もくじ ☆ 0.ソート処理が発生するSQLをなるべく使わない 1.INDEXを有効に使う 2.結合に注意!! 3.その他 4.インポート・エクスポート 5.ちょっとしたSQL達!!でも忘れちゃう。。。 6.パーティショニング(表領域のパーティション化) 7.マテリアライズド・ビュー 8.各種確認コマンド 0.ソート処理が発生するSQLをなるべく使わない SQLを遅くする要

    amari3
    amari3 2009/11/02
    索引について詳しい
  • 1日かかったクエリを1秒で――改善の理由はコンサルにあり

    データベースの処理は、しばしばシステム全体の性能を大きく左右する。システムのパフォーマンスが悪ければハードウェアリソースの不足を招き、余計な投資が必要になる。逆に適切なチューニングを施せば、ITコストを抑えられるはずだ。MySQLのエキスパートである、サン・マイクロシステムズのエンジニアに、そのポイントを聞いた。 ビジネス環境が激変する昨今、ITへの効率的な投資を模索する動きが続いている。そんな状況の中、オープンソースに注目する企業も少なくないのではないだろうか。だが、ただ価格が安いからという理由だけで導入してもメリットを得られない。的確なメンテナンスを行わなければ、ハードウェアリソースの不足によりさらに投資が必要になることもある。 1日以上かかっていたクエリ処理を1秒に短縮 システムの性能を大きく改善する可能性があるのが、データベースのパフォーマンスチューニングだ。パフォーマンスチューニ

    1日かかったクエリを1秒で――改善の理由はコンサルにあり
  • Using filesort

    去年ソートに関する記事を書いたが、今日はその続きである。 MySQLでEXPLAIN SELECT...を実行するとExtraフィールドでよく見かける「Using filesort」という文字列。Filesortって一体なんだろう?と思ったことはないだろうか。単刀直入に言ってFilesortの正体はクイックソートである。 クエリにORDER BYが含まれる場合、MySQLはある程度の大きさまでは全てメモリ内でクイックソートを処理する。ある程度の大きさとはsort_buffer_sizeであり、これはセッションごとに変更可能である。ソートに必要なメモリがsort_buffer_sizeより大きくなると、テンポラリファイル(テンポラリテーブルではない)が作成され、メモリとファイルを併用してクイックソートが実行される。 Filesortは全てのソート処理において実行されるわけではない。前回の記事

    Using filesort
  • TIME_WAITとMSL - sato-bb.net

    今回はネットワーク周りのチューニングのお話。 WEBサーバにアクセスが集中した時、サーバを監視している時は一般的には以下の4点を見ていると思います。 CPU負荷 メモリ状況 ディスクIO コネクション状況 まぁ見ていたところでできることはかなり限られているのですが、次回の対策の目安になります。 とはいえ、前者3つについてはチューニングと言っても増設以外の処置の効果は薄いでしょう。 ただ、4つ目の「コネクション状況」については設定次第で劇的にパフォーマンスが上がったりします。 今回はそのあたりについて書いていきたいと思います。 ・基的なTCP通信の話ここではコネクションのクローズのことだけ書きましょう。一般的にアプリケーションレベルでは通常コネクションをオープンした方からクローズの要求を発行します。しかし、TCPレベルの通信ではどちらからという決まりは無く、データを送り終わった

  • InnoDB のパフォーマンスチューニング - MySQLカンファレンス2007 - akiyan.com 管理人メモ

    http://www.mysql-ucj2007.jp/details/j25.html 木下 靖文 氏 NTTコムウェア株式会社 プロジェクト管理統括部技術SE部門 DB技術グループ (「InnoDB」は「いんのでーびー」と言うらしい...今まで「いのでーびー」と言ってました) InnoDBをなぜ使うか トランザクション コミット、ロールバック、セーブポイント 外部キー 行レベルロック オンラインバックアップ クラッシュリカバリ クラッシュリカバリ MyISAMはデータ量の増大とともに時間がかかる InnoDBはデータ量の増大との相関がない InnoDBチューニングの王道的アプローチ クエリを改善して全体的に処理効率を上げる データサイズをできるだけ小さく メモリをできるだけ多く積む コミット性能(同期書き込み) innodb_flush_log_at_trx_commit=1,0,2

    InnoDB のパフォーマンスチューニング - MySQLカンファレンス2007 - akiyan.com 管理人メモ
  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

  • DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!

    MySQLのチューニングにおいて非常に重要となるメモリ(バッファ)関連のパラメータについて、 チューニングのポイント DSASのとあるDBサーバ(実メモリ4GB)の実際の設定値 をまとめてみます。 また、必要メモリの総量の計算や限界値を越えてないかチェックしてくれるスクリプトも紹介します。 是非、参考にしてみてください! まず最初に注意点を。 バッファには2つのタイプがあります。 グローバルバッファ スレッドバッファ グローバルバッファはmysqld全体でそのバッファが1つだけ確保されるもので、 これに対し、 スレッドバッファはスレッド(コネクション)ごとに確保されるものです。 チューニングの際にはグローバル/スレッドの違いを意識するようにしましょう。 なぜなら、スレッドバッファに多くのメモリを割り当てると、コネクションが増えたとたんにアッという間にメモリ不足になってしまうからです。 in

    DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!
  • MySQLの高度な管理とチューニングテクニック

    MySQLの高度な管理とチューニングテクニック:快速MySQLでデータベースアプリ!(11)(1/2 ページ) 連載もついに最終回。今回はMySQLサーバの運用・管理に必要な状態監視、チューニング、バックアップ、セキュリティについて解説する。以下のテクニックを駆使すれば、MySQLをさらに安定稼働させられるだろう。 前回までは、さまざまな言語やアプリケーション、とりわけWebアプリケーションからMySQLを利用することを主眼に説明してきました。皆さんの中には、それらを応用した実用的なプログラムを考えている方もいるかと思います。そこで、今回は運用上必要となるテクニックをいくつかのトピックに分けてご紹介します。「まだまだ実用は先だ」と思われている方も、いつかくる日のためにこんなこともできるということだけでも知っておいてください。 ロギング機能と動作ステータスの取得 障害発生を防ぐための一番の

    MySQLの高度な管理とチューニングテクニック
  • もろもろメモ

    var gaJsHost = (("https:" == doc ument.loc ation.protocol) ? "https://ssl." : "http://www.");doc ument.write(unesc ape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));var pageTracker = _gat._getTracker("UA-103429-5");pageTracker._trackPageview();

    もろもろメモ
  • 2006-03-28 - ひげろぐ@はてな

    thread_cacheを50にしてみたらひどく効果があった。 mysql> show status like '%con%'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | Aborted_connects | 0 | | Connections | 33433 | | Max_used_connections | 32 | | Threads_connected | 1 | +----------------------+-------+ 4 rows in set (0.00 sec) mysql> show status like '%thre%'; +------------------------+-------+ | Variable_

  • sanonosa システム管理コラム集: サーバのボトルネックはどうやって調べるか

    サーバのレスポンスが遅くなると経験のないサーバ管理者は無意味にメモリ増強を行ったりしますが、行き当たりばったりのシステム拡張は無駄な投資につながります。ボトルネック個所の調べ方は案外簡単なので、この際押さえるところをきちんと押さえて正しい方法論でシステム拡張をしていきましょう。 【一般論】 ボトルネックとなりうる要素は主に4つです。 ①CPU使用率 ②メモリ使用量 ③ディスクI/O ④TCPコネクション数 これらを押さえておけばボトルネック個所の把握とその解消は難しくありません。これを踏まえた一般論を述べてみたいと思います。 WEBサーバの場合は多くの場合、TCPコネクション数から先に限界が来ます。OSやApache等のWEBサーバのパフォーマンスチューニングを十分施すことが前提ですが、その場合TCPコネクション数1万くらいまではなんとか保てると思いますが、それ以上のTCPコネクショ

  • [ThinkIT] 第6回:query_cache_sizeの違いによるパフォーマンス比較 (1/3)

    MySQLサーバには、MySQLクライアントからのクエリとその実行結果をキャッシュし、次回から同じ内容のクエリが要求された場合にキャッシュから応答する、クエリキャッシュという仕組みがあります。キャッシュから応答させることによってデータベースへアクセスする負荷を軽減し、また応答速度自体の向上も狙ったものです。 デフォルト状態ではクエリキャッシュを使用しない設定になっています。以下のように現在の「クエリキャッシュに使用するメモリ量の最大値」であるquery_cache_sizeを確認してください。