web-dev-qa-db-ja.com

挿入、更新、削除の操作を通じて1日に書き込まれるデータ量を確認するにはどうすればよいですか?

SSDの寿命は、挿入、更新、削除操作によって書き込まれたバイト量によって主に決まります。大量の書き込みデータベース環境で使用した場合にSSDの寿命を推定するためにこれを使用できるように、MariaDB 5.5によって毎日書き込まれているデータ量を正確に決定する最良の方法は何ですか?

現在の設定では、すべてのテーブルがInnoDBです。使ってもいいですか Innodb_data_writtenおよびUptimeを使用して、1日あたりに書き込まれるバイトの大まかな考え方を判断します。それとも、より良い方法がありますか?

5
Craig Sefton

モニタリング

追跡する書き込みが非常に多い

データの書き込みは、

外部ソース

  • アプリからのDB接続
  • データの復元
    • Mysqldumpのリロード
    • LOAD DATA INFILE
  • 着信I/Oスレッドを介したMySQLレプリケーション(DBサーバーがマスターの場合)

内部ソース

  • トランザクションログに書き込むためのI/Oスレッドの読み取りと書き込み
  • InnoDBバッファープールからのバッファーの挿入
  • 二重書き込みバッファ
  • MySQLレプリケーション
    • IOスレッド(DBサーバーがスレーブの場合)
    • SQLスレッド
  • ログバッファの書き込み
  • 個々のテーブルスペースファイル(.ibd
  • FSync(変更をディスクにプッシュ)

InnoDBアーキテクチャ

InnoDB Architecture

SSDライフスパン

SSDの寿命に関心がある場合は、InnoDBの一部のパーツをSSDから離れて高速HDDに移動してみてください。どこに行くの?

  • HDD(RAID 10)
    • InnoDBシステムテーブルスペース(ibdata1)
    • InnoDBトランザクションログ(ib_logfile0、ib_logfile1)
    • バイナリログ
    • リレーログ(サーバーがMySQLレプリケーションスレーブの場合)
  • SSD
    • .frmファイル
    • .ibdファイル
  • これを参照 MySQL FaceBook Engineerからの優れたブログエントリ この提案について

SSDとHDDの間で分割ロギングメカニズムを移動することに関する私の以前の投稿の一部を以下に示します

試してみる !!!

4
RolandoMySQLDBA

Innodb_data_written「これまでに書き込まれたデータの量(バイト単位)」 (引用元: http://dev.mysql.com/doc/refman/5.1/en/server-status-variables.html#statvar_Innodb_data_written )ストレージエンジンは実際にはそれより多くのディスクに書き込みます。

Innodbには2つの主要な書き込みパターンがあります(binlogがある場合はその横にあります)。

  • Innodbログファイル(実際のデータ変更)
  • テーブルスペースにフラッシュする(ページごとに、1バイトの変更でもページがダーティとマークされる)

正確なメトリックが必要な場合は、両方を考慮する必要があります。

Show engine innodb statusからのログシーケンス番号とその経時変化。これは、innodb_log_filesにバイトが書き込まれることを意味します。

Innodb_buffer_pool_pages_flushed from show global status;開始以降にフラッシュされたページの数を示します。ページサイズはデフォルトで16kです(再コンパイルすることで変更できます)。

2
Károly Nagy

私のように専用のデバイスにDBファイルを保持している場合は、OSツールを使用してこれをかなり簡単に行うことができます。 iostat -dmを試してください。これは、OSの再起動以降、累積IO統計情報を出力します。これは私のサーバーの1つからの出力です。

$ iostat -dNm

Device:                  tps MB_read/s MB_wrtn/s  MB_read MB_wrtn                                                                        
mysql_volgrp2-logs     80.13      0.00      1.59      313 2608762                                                                        
mysql_volgrp1-db      513.05      8.97      6.09 14726683 9988059                                                                        
mysql_volgrp3-iblogs    1.16      0.00      0.06        2   95082

SSDの寿命については、書き込みのみを考慮します。私の例から、サーバーの起動以降に9.9 TBの書き込みが発生しているvolgrp1-dbを取り上げます。サーバーの起動以降の平均であるMB_wrtn/sを取得し、ユニットを実行することも好きです。 MB /秒からGB /年への変換。

あなたが怠惰な人なら、普通のグーグル検索で本当に簡単に数学を行うことができます。グーグルで試してみてください " 10000 * 300 GB/8.97 MB /秒 "。これにより、平均書き込み速度8.97 MB /秒で定格10,000書き込みサイクルの300 GBドライブが約10.6年間続くと計算されます。

1
Joshua Huber