os:zfs_tips
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
os:zfs_tips [2020/02/03 11:11] – [MySQL] innodb を追記した yuichiro | os:zfs_tips [2022/09/13 11:33] (現在) – [atime は off に] yuichiro | ||
---|---|---|---|
行 14: | 行 14: | ||
そのため、後から自分で追加したプールに対して設定が必要となります。 | そのため、後から自分で追加したプールに対して設定が必要となります。 | ||
+ | ただし、 zroot/ | ||
==== プールには必ず空き容量を確保すること ==== | ==== プールには必ず空き容量を確保すること ==== | ||
行 66: | 行 67: | ||
つまり 8GB のメモリを搭載した環境では 7GB まで ARC に使われる可能性があります。 | つまり 8GB のメモリを搭載した環境では 7GB まで ARC に使われる可能性があります。 | ||
- | これを制限するパラメータが sysctl の vfs.zfs.arc_max です。 | + | これを制限するパラメータが sysctl の vfs.zfs.arc.max ((13.0-RELEASE より前は |
アプリケーションにどの程度メモリを空けて置きたいのかを考えて、ARC を制限しましょう。 | アプリケーションにどの程度メモリを空けて置きたいのかを考えて、ARC を制限しましょう。 | ||
行 72: | 行 73: | ||
< | < | ||
- | sysctl vfs.zfs.arc_max=4294967296 | + | sysctl vfs.zfs.arc.max=4294967296 |
</ | </ | ||
行 136: | 行 137: | ||
zfs のバックアップにスナップショットを send & recv するのは定番とも言えますが、 | zfs のバックアップにスナップショットを send & recv するのは定番とも言えますが、 | ||
ファイルシステムの使用量が大きくなるとバックアップに時間がかかるようになります。 | ファイルシステムの使用量が大きくなるとバックアップに時間がかかるようになります。 | ||
- | ひょっとかするとネットワークの不調などで途中で止まってしまうことがあるかもしれません。 | + | ひょっとするとネットワークの不調などで途中で止まってしまうことがあるかもしれません。 |
その場合、最初からやり直すのはとても辛いため、途中からやり直すことができます。 | その場合、最初からやり直すのはとても辛いため、途中からやり直すことができます。 | ||
行 186: | 行 187: | ||
==== PostgreSQL ==== | ==== PostgreSQL ==== | ||
+ | === atime === | ||
+ | atime は off にしましょう。理由は前述の通りです。 | ||
=== record size === | === record size === | ||
行 236: | 行 239: | ||
==== MySQL (innodb) ==== | ==== MySQL (innodb) ==== | ||
+ | === atime === | ||
+ | |||
+ | atime は off にしましょう。理由は前述の通りです。 | ||
=== record size === | === record size === | ||
行 280: | 行 286: | ||
| ログ用 | lz4 | | | ログ用 | lz4 | | ||
- | === skip-innodb-doublewrite | + | === skip_innodb_doublewrite |
- | my.cnf に skip-innodb-doublewrite | + | my.cnf に skip_innodb_doublewrite |
これはもともと 16k のデータの内、半分の 8k だけはディスクに書かれたが残りの 8k は書かれていないようなタイミングで電源喪失などが発生した際にそれを検知するためのものです。 | これはもともと 16k のデータの内、半分の 8k だけはディスクに書かれたが残りの 8k は書かれていないようなタイミングで電源喪失などが発生した際にそれを検知するためのものです。 | ||
行 288: | 行 294: | ||
2回の書き込みが1回に減る分、性能向上が期待できます。 | 2回の書き込みが1回に減る分、性能向上が期待できます。 | ||
- | ==== MySQL (MyIASM) ==== | + | ==== MySQL (MyISAM) ==== |
+ | |||
+ | === atime === | ||
+ | |||
+ | atime は off にしましょう。理由は前述の通りです。 | ||
+ | === record size === | ||
+ | |||
+ | MyISAM は一度に 8k ずつデータを読み書きしますので、recordsize=8k を指定します。 | ||
+ | ログ用にディレクトリを分けることができませんので、データ用に合わせます。 | ||
+ | |||
+ | === primary cache === | ||
+ | |||
+ | MyISAM でもアプリケーション側で必要なデータをメモリ内にキャッシュします。 | ||
+ | primarycache=metadata で zfs の arc 使用量を制限し、アプリケーション側で使えるメモリを増やします。 | ||
+ | |||
+ | === log bias === | ||
+ | |||
+ | データとログが同じファイルシステムに置かれるため、安全のためデフォルトのまま logbias=latecy にするのが良いでしょう。 | ||
+ | |||
+ | === compression === | ||
+ | |||
+ | lz4 で得られるメリットは innodb と同じです。 | ||
- | < | ||
os/zfs_tips.1580695860.txt.gz · 最終更新: 2020/02/03 11:11 by yuichiro