skillup

技術ブログ

サーバー・ネットワーク

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

投稿日:

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

ポイント

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

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

執筆者:


comment

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

関連記事

no image

docker上でミニサービスを起動させるまで

dockerで何とかホストOS上でサービスを起動させるところまでは終了。 Contents1 やったこと2 苦戦したこと やったこと CentOSのイメージを取得 [crayon-5c6f8ba654 …

no image

OSキャッシュの仕組み

大規模サービス技術入門のつづきです。 主にOSのキャッシュメモリについてです。 メモリとディスクの速度差は10万倍~100万倍 いかにディスクへのアクセスを減らすかがポイント OSは各プロセスにメモリ …

no image

serverspecによるサーバー自動テスト

最近は管理しているサーバーが多いのと、構成管理ツール(Ansible)なんかをちょくちょく使ってますが、ちゃんと入っているかどうかを確認するのはそれなりに大変だったりします。 が、構成管理ツール自体も …

no image

zabbixアラートメール

以前、zabbixの基本設定についてこのエントリーでかきました。 今回はzabbixでの何らかの障害が発生した時に、アラートメールを送信したい場合について Contents1 ユーザーの登録&ユーザー …

no image

vimの小ネタ(主にテキスト置換系に関して)

前回に引き続き、またまたvimの小ネタなど Contents1 マクロ2 単純な置換3 改行系の置換4 一括置換 マクロ エディタ上である動作を記録させておきたい場合、q+任意の文字(例えばa)+任意 …