データベース設計とSQL操作のチューニング技法のベストプラクティスに従っても,データベースが大量のディスクI / Oアクティビティーによってまだ遅い場合は,ディスクI / Oに関するこれらの低レベル技法を調査してください。Unix前
ツールまたはWindowsタスクマネージャーに,ワークロードのCPU使用率が70%未満であることが示されている場合,ワークロードはディスクに依存している可能性があります。
テブルデタを
InnoDB
バッファープールにキャッシュすると,ディスクI / Oを必要とせずに,クエリーでそれを繰り返し処理できます。バッファプルサズは,通过innodb_buffer_pool_size
オプションで指定します。このメモリー領域はきわめて重要であるため,ビジーなデータベースでは多くの場合,サイズを物理メモリーの量の約80%に指定します。詳細にいては,セクション8.9.1 " InnoDBバッファプル"を参照してください。GNU/LinuxおよびUnixの一部のバジョンでは,Unix
fsync ()
呼び出し(これは.InnoDB
がデフォルトで使用します)および類似のメソッドによるファイルのディスクへのフラッシュが驚くほど低速です。デタベスの書き込みパフォマンスが問題である場合,innodb_flush_method
パラメタをO_DSYNC
に設定してベンチマクを実行します。x86_64アキテクチャ(AMD Opteron)のSolaris 10で
InnoDB
ストレジエンジンを使用する場合,InnoDB
関連ファesxi esxiルにダesxiレクトI/Oを使用して,InnoDB
のパフォマンスの低下を回避します。InnoDB
関連ファイルを格納するために使用されるUFSファイルシステム全体にダイレクトI / Oを使用するには,それをforcedirectio
オプションでマウントします。mount_ufs(1米)
を参照してください。(Solaris 10/x86_64のデフォルトではこのオプションを使用.しません)。ダesxiレクトI/Oをファesxiルシステム全体ではなく,InnoDB
ファル操作にのみ適用するには,innodb_flush_method = O_DIRECT
を設定します。この設定では,InnoDB
はデfcntl ()
ではなく,译:()
を呼び出します。Solaris 2.6以上の任意のリリースおよび任意のプラットフォーム(sparc / x86 / x64 / amd64)で,大きな
通过innodb_buffer_pool_size
値を使用して,InnoDB
ストレジエンジンを使用する場合,先述のforcedirectio
マウントオプションを使用して,原始デバイスまたは個別のダイレクトI / O UFSファイルシステムで,InnoDB
デタファ。(ログファesxiルのダesxiレクトI/Oが必要な場合,innodb_flush_method
を設定する代わりに,マウントオプションを使用する必要があります)VeritasファイルシステムVxFSのユーザーは,convosync =直接
マウントオプションを使用してください。ダesxiレクトI/Oファesxiルシステムに,
MyISAM
テ。実行ファesxi esxiルやラesxiブラリは,ディレクトioファesxiルシステムに配置しないでください。RAID構成または別のディスクへのシンボリックリンクをセットアップするために追加のストレージデバイスを使用できるようにする場合,追加の低レベルI / Oのヒントについては,セクション8.11.3 "ディスクI/Oの最適化"を参照してください。
InnoDB
チェックポ邮箱ント操作のため,スル,プットが周期的に低下する場合,innodb_io_capacity
構成オプションの値を増加することを考慮します。値を大きくすると,フラッシュが頻繁になり,スルプットを低下させる可能性のある作業のバックログが避けられます。InnoDB
フラッシュ操作によって,システムが遅くならない場合は,innodb_io_capacity
構成オプションの値を小さくすることを考慮します。一般に,このオプション値はできるかぎり小さくしますが,前の箇条書きで示したように,スループットに周期的な低下が発生するほど小さくしないでください。オプション値を小さくすることができる一般的なシナリオでは,显示引擎innodb状态
からの出力に,次のような組み合わせが示されることがあります。履歴リストの長さが短く,数千未満です。
挿入バッファマジ数が挿入された行数に近いです。
バッファプル内の変更されたペジが,一貫してバッファルの
innodb_max_dirty_pages_pct
をはるかに下回っています。(サーバーが一括挿入を実行していないときに測定します。変更されたページの一括挿入時に,パーセンテージが大幅に高くなるのは正常です)。日志序列号-最后一个检查点
が,InnoDB
ログファ邮箱ルの合計サ邮箱ズの7/8未満か,理想的には6/8未満です。
I/Oに依存したワクロドのチュニング時に考慮するその他の
InnoDB
構成オプションには次が含まれます:innodb_adaptive_flushing
、innodb_change_buffer_max_size
、innodb_change_buffering
、innodb_flush_neighbors
、innodb_log_buffer_size
、innodb_log_file_size
、innodb_lru_scan_depth
、innodb_max_dirty_pages_pct
、innodb_max_purge_lag
、innodb_open_files
、innodb_page_size
、innodb_random_read_ahead
、innodb_read_ahead_threshold
、innodb_read_io_threads
、innodb_rollback_segments
、innodb_write_io_threads
,およびsync_binlog
。