LoginSignup
0
0

More than 3 years have passed since last update.

[メモ]Web開発者のための大規模サービス技術入門の覚書

Posted at

Web開発者のための大規模サービス技術入門を読んだ覚書。

  • OSSでできる冗長化。

    • LVSとkeep alive。
  • 負荷の確認。

    • まずはロードアベレージの確認。
    • 問題ない場合は、ソフトウェアの設定、不具合、ネットワーク、リモートホストを疑う。
    • CPU起因、I/O起因か確認する。
    • CPUに負荷がかかっているのはディスク、メモリーがボトルネックになっていないあるいみ理想的状態。
    • またはプログラムの暴走。
  • OSの仮想メモリ機構。

    • ページごとにプロセスへ渡す。
    • ページキャッシュ。
    • OSは動かし続けた方がはやくなる。
    • メモリーが足りなくなった場合はLRUなのでDBも動かし続ければ負荷が減る。
    • DBサーバーをそのままスケールアウトしても、メモリにデータのらないので遅いまま効果あまりない。
    • メモリーを増やすか、データを分割してスケールアウトする。
    • データ量が物理メモリより小さくなるように。
    • メンテなどで再起動した場合、キャッシュなっていないので大量のI/Oが発生する。
  • アクセスの種類で割り振るDBを変えることでキャッシュに乗りやすくする。

    • テーブルごとに分割。
    • ユーザーごとに分割。
    • ユーザー、クローラーで分割。
    • テーブル分割するとjoin出来なくなる。
  • 圧縮。

    • バイナリ符号Visual Basic符号。
    • 符号化の方法でもデータ量を減らせる。
    • 数値を前の数値との差分で持つ。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0