[]バッファプールパラメータが-Mysqlを回すinnodb_buffer_pool_size

転送:https://blog.csdn.net/kk185800961/article/details/79378313/

メインエンジンはInnoDBとして以下のことを考えてみましょう

【innodb_buffer_pool_size】

  インデックスとデータ用のメモリキャッシュサイズが、これはもちろん可能であり、非常に迅速にメモリ内のデータを読み取り、書き込み、ディスク読み取り減らします。データは、チェックポイントの後やディスクへのワンタイムリフレッシュメモリデータの満たす条件に提出された場合。しかしながら、他のプロセスによって使用されるオペレーティングシステムやデータベース・メモリは、通常設定バッファー・プール・サイズが3/4総メモリの4/5であること、があります。適切に設定した場合、メモリ使用量が無駄や過剰使用することができます。スレッドは読み取りと書き込みのキャッシュが競合を減らすために間を忙しくサーバーの場合、バッファプールは、システムの同時実行性を向上させるために、複数のインスタンスに分割されます。まず、innodb_buffer_pool_instancesの影響により、バッファプールのサイズは、当然のことながら、あまり影響を受けました。
[Innodb_buffer_pool_instances]

  バッファプールの数は、キャッシュ・インスタンスを複数に分割し、固定値を動的に変更されていません。あなたはメモリに多くのデータをロードすると、キャッシュ競合を減らすために、複数のキャッシュ・インスタンスを使用しています。1ギガバイトよりときinnodb_buffer_pool_sizeの大きい、innodb_buffer_pool_instancesのデフォルトは8です。複数バッファ・プールであれば、少なくとも1ギガバイトの平均インスタンス。

  innodb_buffer_pool_sizeにはほとんど影響は以下の通り:

シェル>のmysqld - innodb_buffer_pool_size = 8G --innodb_buffer_pool_instances = 16 
のMySQL >  SELECT  @@ innodb_buffer_pool_size / 1024個の/ 1024個の/ 1024 + - ---------------------------------------- + 
|  @@ innodb_buffer_pool_size / 1024個/ 1024個/ 1024個 | 
+ - ---------------------------------------- + 
|                            8.000000000000  | 
+ - ---------------------------------------- + 

シェル> mysqldを- innodb_buffer_pool_size = 9G --innodb_buffer_pool_instances = 16 
のMySQL >  SELECT  @@ innodb_buffer_pool_size / 1024個の/ 1024個の/ 1024 + - ---------------------------------------- + 
|  @@ innodb_buffer_pool_size / 1024個/ 1024個/ 1024個 | 
+ - ---------------------------------------- + 
|                           10.000000000000  | 
+ - ---------------------------------------- 
+ ------ ----------

【Innodb_buffer_pool_chunk_size]
innodb_buffer_pool_chunk_sizeデフォルトの128メガバイト(変更は再起動する必要がある)、1メガバイト単位で増加。 
次のようにinnodb_buffer_pool_chunk_sizeの最大値は、推定された:
MAX(innodb_buffer_pool_chunk_size)= innodb_buffer_pool_size / innodb_buffer_pool_instances

 

上記の3つのパラメータに基づいて:

プール推定式をバッファ:(Nは正の整数であり;プールバッファメモリの合計がなければならない3/4 4/5のへ)
innodb_buffer_pool_size = N *(* innodb_buffer_pool_chunk_sizeのinnodb_buffer_pool_instances)

N = 1は、3つのパラメータだけ、以下の式を満たす:
innodb_buffer_pool_sizeは= innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances

セットinnodb_buffer_pool_chunk_size少ない1メガバイトこの時点で、次いで、その後、バッファー・プール・サイズがほぼCHUNK_SIZE *インスタンス<buffer_pool_sizeため倍場合は、この時点ではN = 2であり、buffer_pool_sizeはサイズの(CHUNK_SIZE *インスタンス)倍であります

innodb_buffer_pool_size = 2 *(innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances)

従ってJiaoyouランキングを提供し:プールサイズは100ギガバイトを期待バッファ、システムメモリ= 128 GBの仮定(128ギガバイト* 80%)
。innodb_buffer_pool_instances =#デフォルト8、ロジックの量又はCPU
= 128メガバイト#デフォルトinnodb_buffer_pool_chunk_size
innodb_buffer_pool_size = 100ギガバイト#N * 8 * 128MG = N GB、Nは厳密に正の整数です。N = 100、総メモリ・バッファ・プールが5分の4〜4分の3になるように設けられています。

 

【innodb_page_size】

innodb_page_sizeデフォルトの16キロバイトは、データ・メモリ・ページは、オペレーティング・システムは、ブロック・サイズ(同じinnodb_log_write_ahead_size)と整合的であるべきです。小さいページのSSDのためのおそらくより良いです。32Kおよび64Kのような場合innodb_page_size、最大の行の長さが16000バイトであり、ROW_FORMAT = COMPRESSEDをサポートしていません。

innodb_buffer_pool_chunk_sizeに含まれるページの数がinnodb_page_size依存します。

デフォルト:チャンク= innodb_buffer_pool_chunk_size / innodb_page_size = 128保存することができるページ数* = 8192 1024から1016

mysqlの>  SELECT  @@ innodb_buffer_pool_size 
mysqlの>  SELECT  @@ innodb_buffer_pool_instances 
mysqlの>  SELECT  @@ innodb_buffer_pool_chunk_size

 

見ます:

おすすめ

転載: www.cnblogs.com/july-sunny/p/12624145.html