若手ITエンジニア 最強の指南書

os システム設計 モデリング 要件定義

2018-07-11 01:55:02

若手ITエンジニア 最強の指南書

  • 第1章 テクノロジー編
  • 第2章 エンジニアリング編
  • 第3章 マネジメント編
  • 第4章 ヒューマンスキル編

第1章 テクノロジー編

1-1 システムの性能を決める大事な要素

p.6

  • コンピューターを構成する主なハードウェア要素
    • プロセッサ
    • メモリー
    • ストレージ
    • ネットワーク

p.7

  • プロセッサの性能がコンピューターの性能に直結する
  • プロセッサの基本構造
    • 演算装置(コア)
    • メモリー(レジスタ、L1〜L3キャッシュ)
    • 入出力インターフェース
  • プロセッサの性能
    • 単体での性能
    • 並列化したときの性能
  • プロセッサ内部
    • 情報を0と1のビットに変換して扱う
    • 電気信号のONとOFFを切り返す速さに依存
    • この切替の速さを表す指標をクロック周波数という
      • 1GHz
        • 1秒間に10億回の切り替えが可能
    • クロック周波数を高速させるほど消費電力が上がり、発熱する
      • 2000年頃に頭打ち
      • マルチコアの登場
        • 2P/28C
        • 1プロセッサ辺り14コア

p.9

  • メモリー
    • 半導体素子から構成されている
    • 磁気ディスクの回転や磁気ヘッドの移動などが生じるHDDと異なり、機械動作が発生しない
      • 高速なデータアクセスが可能
  • DRAM
    • 用途:一時的なデータ保持
    • アクセス速度:高速(ナノ秒)
    • 容量:低用量
    • 書き換え上限回数:ほぼ制限なし
    • 記憶特性:揮発性
  • フラッシュメモリー
    • 用途:永続的なデータ保持
    • アクセス速度:低速(数ミリ秒)
    • 容量:大容量
    • 書き換え上限回数:数千〜数万回
    • 記憶特性:不揮発性
  • メモリー不足するとスローダウンが発生
    • swapが実行されるため
      • swapとは
        • 利用できるメモリーが少ないときに、HDDなどの記憶装置に一時的に追い出す仕組み
        • スワップアウト
        • HDDにデータを追い出す
        • スワップイン
        • HDDからメモリーにデータを戻す
        • スラッシング
        • スワップアウトとスワップインを繰り返す動作のこと
        • メモリとHDDなどの他の記憶装置はアクセス性能に大きな差があるため、処理の遅延が生じる

p.13

  • コンピューターの構成要素のリソース使用状況を調べる
  • プロセッサ
    • プロセッサの使用率
      • mpstat -P ALL 10
        • 全コアのプロセッサの10秒間の使用率
  • メモリー
    • vmstat 10
      • --swapセクションのsi列がスワップイン、so列がスワップアウト
  • ストレージ
    • iostat -d -mx 10
  • ネットワーク
    • sar -n DEV 10

1-3 データベース基礎

p.26

  • 共有ディスク型
    • Active-Stanby
      • データベースサーバーを稼働系とマスターとスレーブに分ける
      • マスターに障害が起きたときに、スレーブで共有ディスクをマウントし、稼働
    • Active-Active
      • 一つの共有ディスクに対し、複数のデータベースサーバーからアクセスする方式
      • どのサーバーからもデーターベースサーバーへの更新・参照が可能
        • 更新に競合が発生する可能性があるため、競合解決のためのルール設計が難しい
  • 非共有ディスク型
    • Active-Stanby
      • データベースサーバーを複数作成
        • マスターとスレーブでデータが複製される
        • レプリケーション構成
          • スレーブが常にマスターに追いついている同期、差異がある非同期がある
    • Active-Active
      • 複数台のデーターベースサーバーがそれぞれデータを保持している
      • どのサーバーからもデータベースサーバーへの更新・参照が可能
        • 更新に競合が発生する可能性があるため、競合解決のためのルール設計が難しい

p.27

  • SQLパフォーマンスチューニング
  • ログの確認
    • スロークエリ、ロック、エラーなど
  • クエリーの実行計画の確認
    • EXPLAN句
  • リソース情報の確認
    • CPU、メモリー、ディスク、ネットワークなど
  • パラメーターの確認
    • 特にメモリー関連のパラメーターは性能に影響を与える
      • データーベースはデータを取得する際に、メモリーにアクセスする
      • メモリー上に必要なデータがないと、ディスクにデータを探しにいく