web-dev-qa-db-ja.com

MySQLはスワップメモリ​​を使用していますが、十分な空きがありますRAM

データベース用に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(サンティアゴ)。

3
Fuad Damra

Innodb_buffer_pool_pages_free/Innodb_buffer_pool_pages_totalは約15%の空き容量を示しています。ダーティページの数が少なく、非常に少ないInnodb_buffer_pool_readsInnodb_buffer_pool_reads_requestsおそらくbuffer_poolのサイズを調整できます。

Innodb_buffer_pool_pages_free == 0は、ディスクから頻繁に読み取っていない場合(Innodb_buffer_pool_readsが低い場合)に完全に受け入れられます。

1
danblack