ホームページ  >  記事  >  データベース  >  MySQL がメモリを大量に消費する問題を解決する方法の詳細な例

MySQL がメモリを大量に消費する問題を解決する方法の詳細な例

WBOY
WBOY転載
2022-07-06 14:03:123011ブラウズ

この記事では、mysql に関する関連知識を提供します。主に過剰なメモリ使用量に関連する問題を整理し、Windows と CentOS7 の 2 つのシステムをそれぞれ使用してこの問題を解決します。一緒に、皆さんのお役に立てれば幸いです。

MySQL がメモリを大量に消費する問題を解決する方法の詳細な例

推奨学習: mysql ビデオ チュートリアル

序文

一部の小ブルジョワジー プレーヤーにとって、サーバーの数はたとえば、私の個人サーバー構成は 2 コア 4G5M です。

4G メモリは Java プレーヤーにとって実際には大きくありません。いくつかのミドルウェアを開くと、独自のマイクロサービスが非常に混雑し、MySQL という大きな敵に対処する必要があります。私のローカル マシン上の MySQL は数 MB のメモリしか占有しません (私はあまり使用しませんが、ローカル マシン上の MySQL は確かに開いています):

MySQL がメモリを大量に消費する問題を解決する方法の詳細な例

そして、サーバーに必要な容量は 400M なので、スループットはあまり高くありません。ただの遊びです。メモリ使用量が多すぎます。 。 。

解決策

MySQLのメモリ使用量は設定を変更することで削減できることを知ったので試してみたので記録します。 2台のサーバーを同時に使用しており、1台はWindows Service 2016、もう1台はCentOS7をインストールしていますが、両方のサーバーの状況が似ているため、参考までに2つの記録を同時に作成します。

構成ファイルの検索

Windows サービス 2016

構成ファイルの既定の場所は C です。 \ProgramData\ MySQL\MySQL Server 8.0\my.ini に変更がある場合は、実際の状況に基づいて見つけてください。

CentOS7

設定ファイルのデフォルトのパスは、/etc/my.cnf です。変更されているため、実際の状況に応じて見つけることができます。

構成ファイルを変更します

Windows では Ctrl F を使用して検索でき、Linux では「/key」を使用して検索できます。その方法については、Baidu を参照してください。

見つけて変更する必要があるものが 3 つあります:

  1. table_setting_cache を見つけて、400

    official に変更しました。次のように解釈されます: 定義キャッシュに保存できる (.frm ファイルからの) テーブル定義の数。多数のテーブルを使用する場合は、大規模なテーブル定義キャッシュを作成して、テーブルを開く速度を向上させることができます。通常のテーブル キャッシュとは異なり、テーブル定義キャッシュは使用するスペースが少なく、ファイル記述子を使用しません。最小値とデフォルト値は両方とも 400 です。

  2. table_open_cache を見つけて、それを 256

    MySQL がテーブルを開くたびに、一部のデータを table_open_cache キャッシュに読み込みます。 MySQL はこのキャッシュに対応する情報が見つからない場合、ディスクから読み取られます。

    正式な説明は、すべてのスレッドで開いているテーブルの数です。この値を増やすと、mysqld に必要なファイル記述子の数が増加します。したがって、[mysqldsafe] セクションの変数「open fileslimit」で、開くことを許可されるファイルの数が少なくとも 4096 に設定されていることを確認する必要があります。

  3. performance_schema を見つけて off に変更します

    これが見つからない場合は、適切な場所に performance_schema = off を直接追加します # ## それでおしまい。

    下位レベルの操作中に MySQL サーバーのリソース消費、リソース待機などを監視するために使用され、終了後はコストを節約でき、サーバーの動作は変わりません。

変更後、保存して終了します。

MySQL の再起動

Windows サービス 2016

管理者としてコンソールを起動し、「net stop mysql」と入力して、「Enter」を押します。ネットでmysqlを起動します。

再起動後もまだ 62M を占有しています。

MySQL がメモリを大量に消費する問題を解決する方法の詳細な例

CentOS7

コンソールで「service mysqld restart」と入力して再起動します。

MySQL がメモリを大量に消費する問題を解決する方法の詳細な例

これが機能しない場合は、

/etc/init.d/mysqld restart コマンドを試してください。

再起動後は92Mを占有し、Windowsよりも多くなります。

MySQL がメモリを大量に消費する問題を解決する方法の詳細な例

追記

この方法は確かに mysql のメモリ使用量を削減できますが、メモリと引き換えにパフォーマンスが低下するだけです。要件は比較的高いため、このように直接変更することはできず、実際の要件に応じて調整する必要があります。

推奨学習: mysql ビデオ チュートリアル

以上がMySQL がメモリを大量に消費する問題を解決する方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。