データベース用に6 GBのバッファープールサイズがあります。ただし、mysqld
プロセスはスワップに移行していますが、十分なRAMが利用可能です。読み取りのプールおよび読み取り要求のプールとともに、プールのサイズとページを調整する必要があると思いますそのような状況は避けてください。
以下は私の現在の設定です:
[fuad@damra mysql]$ free -m
total used free shared buffers cached
Mem: 7872 7138 734 0 304 678
-/+ buffers/cache: 6155 1717
Swap: 32767 456 32311
mysql> SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool%';
+---------------------------------------+-------------+
| Variable_name | Value |
+---------------------------------------+-------------+
| Innodb_buffer_pool_dump_status | not started |
| Innodb_buffer_pool_load_status | not started |
| Innodb_buffer_pool_pages_data | 316153 |
| Innodb_buffer_pool_bytes_data | 5179850752 |
| Innodb_buffer_pool_pages_dirty | 20 |
| Innodb_buffer_pool_bytes_dirty | 327680 |
| Innodb_buffer_pool_pages_flushed | 51645307 |
| Innodb_buffer_pool_pages_free | 75279 |
| Innodb_buffer_pool_pages_misc | 1776 |
| Innodb_buffer_pool_pages_total | 393208 |
| Innodb_buffer_pool_read_ahead_rnd | 0 |
| Innodb_buffer_pool_read_ahead | 0 |
| Innodb_buffer_pool_read_ahead_evicted | 0 |
| Innodb_buffer_pool_read_requests | 26268346860 |
| Innodb_buffer_pool_reads | 496 |
| Innodb_buffer_pool_wait_free | 0 |
| Innodb_buffer_pool_write_requests | 207971337 |
+---------------------------------------+-------------+
mysql> SHOW VARIABLES LIKE 'innodb_buffer_pool_%';
+-------------------------------------+----------------+
| Variable_name | Value |
+-------------------------------------+----------------+
| innodb_buffer_pool_dump_at_shutdown | OFF |
| innodb_buffer_pool_dump_now | OFF |
| innodb_buffer_pool_filename | ib_buffer_pool |
| innodb_buffer_pool_instances | 8 |
| innodb_buffer_pool_load_abort | OFF |
| innodb_buffer_pool_load_at_startup | OFF |
| innodb_buffer_pool_load_now | OFF |
| innodb_buffer_pool_size | 6442450944 |
+-------------------------------------+----------------+
より良い結果を達成し、RAMが完全に利用されていない限り、MySQLがスワップディスクに切り替えないようにするには、これらの値を調整する必要がありますか?
これは、2つのMySQLスキーマを保持する専用データベースサーバーです。両方のスキーマが同じアプリケーションにサービスを提供しています(1つのスキーマは統計を格納するためのものです)。
swappinessを変更することはできません。これはVMware管理者のオプションではないためです。 RAMについては、734 + 678です(キャッシュされたメモリは再利用できます)。
アプリケーションとMySQLの間でJDBCドライバーを提供するために、このサーバーにJavaがインストールされています。
Red Hat Enterprise Linux Serverリリース6.7(サンティアゴ)。
Innodb_buffer_pool_pages_free
/Innodb_buffer_pool_pages_total
は約15%の空き容量を示しています。ダーティページの数が少なく、非常に少ないInnodb_buffer_pool_reads
対Innodb_buffer_pool_reads_requests
おそらくbuffer_poolのサイズを調整できます。
Innodb_buffer_pool_pages_free == 0
は、ディスクから頻繁に読み取っていない場合(Innodb_buffer_pool_readsが低い場合)に完全に受け入れられます。