解決策 1:
トランザクションは、RAW ディスク (例では dm-0) に書き込まれる単一の IO コマンド (フェッチ ブロック/書き込みブロック) です。 Linux カーネルは、これらのコマンドをより適切な順序に並べ替えようとするか、より効率的なコマンドに圧縮しようとします (たとえば、1 つのブロックを取得して、このブロックの直後に別のブロックを取得する代わりに、一度に 2 つのブロックを取得します)。これらは、ディスク コントローラ (sda の場合は tps) に送信されるトランザクションです。
優れたコントローラーは、実際のトランザクション数をさらに減らす独自のロジックを持っている可能性があります。
トランザクションは、「セクター 22 から始まる crontoller 1 ターゲット 2 lun 3 に 2 GB を書き込む」という SCSI コマンドである可能性があります。
あなたが求めているのは、持続的な書き込み速度です。ここにはいくつかの制限要因があります:
- client-connection:ネットワークがギガビットの場合、入力が 100 MB/s を超えることはありません
- disk-controller:これが 3 Gb コントローラの場合、スループットが 300 MB/秒を超えることはありません
- ディスク:持続的な書き込みパフォーマンスのメーカーの値を調べます
- ファイルシステム:OS がデータを処理する必要があるため、多少のオーバーヘッドがあります - RAM ディスクでテストしてください...
私の推測では、あなたのシステムは次のようになります:RAID 10 または 5 を実行できる優れたハードウェア RAID コントローラーを入手し、少なくとも 6 つの高速 (15k) ディスクを入手してください。
業務用には、SATA の代わりに SAS を使用してください。
解決策 2:
TPS
にも注意してください。 値は読み取りと書き込みを表し、-x
を使用できます 読み取りと書き込みが分離された拡張ビューのスイッチ (r/s =読み取り IOPS、w/s =書き込み IOPS):
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
vda 0.07 24.65 0.30 18.95 30.65 330.22 18.74 0.07 3.61 0.98 1.89