skillup

技術ブログ

サーバー・ネットワーク

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

投稿日:

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

ポイント

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

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

執筆者:


comment

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

関連記事

no image

vagrantで仮想環境を別PCにコピー

vagrantで自分の作った環境を他人にコピーしたい機会があり、なんとか成功したのでメモします。いや~便利ですね・・・ 環境は vagrant 1.7.4 win8 です。 Contents1 準備2 …

no image

ネットワーク基礎 OSI参照モデルなど

ここ↓でネットワークの基礎についてかいてあるので定期的に勉強しようと思っています。 3分間 NetWorking Contents1 スニーカーネットからリソース共有2 LANとWAN3 OSI参照モ …

no image

dockerコンテナ間での連携(PHP+MySQL)

dockerでのコンテナ間の連携について 以前、dockerではCentOSのイメージからコンテナを作成し、その中にphp,apache,mysqlをインストールしてましたが、dockerの使い方とし …

no image

OSI参照モデル イーサネットとMACアドレス

OSI参照モデルのレイヤー1とレイヤー2で必要不可欠な規格がイーサネットです。 有線ネットワークであればほぼこの規格を採用していると思って間違いないでしょう。 MACアドレスでコンピューターを識別する …

no image

Addtypeについて

htmlにはPHPを埋め込むことができますが、拡張子がhtmlの場合、そのままでは実行できません。 この場合、通常では拡張子を変えなければいけないところですが、apacheを使っている場合、設定ファイ …

アーカイブ