skillup

技術ブログ

サーバー・ネットワーク

大規模Webサービス技術入門 イントロ

投稿日:

一応WEBサービスを日々改修していますが、データが日々ふえ、大規模なサービスの対処法などを勉強する必要があるため、「大規模サービス技術入門」を少しずつ読んでいこうと思います。

ポイント

  • データはディスク→メモリ→キャッシュメモリ→CPUというプロセスを経て、読み込まれる
  • ハードディスクのIOが一番のボトルネック、メモリから比べると10万倍から100万倍の違いがある
  • サーバースペックに関して各ソフトの要件に安全率(2倍ぐらい?)を書ける、簡易的な負荷試験をおこなうなど
  • ロードアベレージが高い場合、CPU,IOのどちらに問題があるかを切り分ける。sarコマンドでともにみることができる。前者は%user,後者はiowaitなどが代表的な指標。
  • チューニングの基本は問題の原因を知り、それを取り除くこと
  • webアプリケーションの場合、アプリの冗長化はロードバランサなどの方法から比較的簡単だが、データべースの分散はデータの整合性を取る関係上、分散が難しい
    CPU負荷→一般的にはデータ量は増えないものの異常に難しい計算などを何段階も行う場合、CPUに負荷がかかる(いわゆる計算系の処理)。CPUバウンドな処理ともいう。一般的にはアプリケーションサーバーがこのような傾向にある。
    IO負荷→大量のデータから任意のものを探すなど、大量のデータを前提とするような処理。一般的にはデータベースサーバーがこのような状態になる
  • 負荷を抑えるプログラムを作るうえでのコツは下記のようなもの
    1 アクセスする回数を減らす
    2 データ量の増加に対して強いアルゴリズム(正比例するようなアルゴリズムをかかない)
    3 データ圧縮や検索技術を使うこと

-サーバー・ネットワーク
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

nginxインストール(サブディレクトリでcakePHPを使いたいとき)

以前nginxのインストールを行いましたが、理解が浅かったようで今回すげーはまりました(汗) ガチンコ塾でもいっていますが、覚え始めの時はコピペでもいいですが(最初から100%の理解は非現実的)、慣れ …

no image

SELinuxによるファイル制限+MySQLアクセスエラー

新サーバーにApacheをいれて特定のファイルにアクセスしようとしたところ、 以下のようなエラーがでてしまいました。

ただPermis …

no image

S3 commandPoolについて

S3のcommandPoolに関して。 S3にファイルをアップロード、ダウンロードするときに、1つ1つファイルをアップロード、ダウンロードすることが一般的かと思いますが、ファイル数が多くなるとなかなか …

no image

FastCGIに関して

nginxについて学習してきましたが、今回はphp-fpmについてです。 Contents1 そもそもの構成2 CGIのメカニズム3 FastCGI4 nginxでの設定に関して4.1 fastcgi …

no image

herokuネタ(頻出コマンドなど)

10月末ぐらいから使っているPaasのherokuについてよく使うコマンドについて Contents1 アカウント開設&スタート2 基本的な使い方 アカウント開設&スタート http://skill- …