「広告」

MySQLのメモリは、どのくらい使われている???

「広告」
記事内に広告が含まれています。
「広告」

ワードプレスなど、様々なアプリケーションで使われているデータベース、「MySQL」。
VPSやクラウドを選択した場合、サーバーの「メモリ」を選択することになります。

最近は、簡単に、スケールアップ(CPUやメモリをアップグレード)することが簡単にできるサービスが多くなりました。

メモリは、VPSのサーバー利用料金に直結します。
お金を出せば、潤沢なサーバーを用意できますが、適度に節約をしたいですね。

実際にどのくらい使われているのでしょうか・・・

「広告」

OSのメモリ

CentOSのメモリは、どのくらいの余裕があるのでしょう。
「free」というコマンドを使います。

# free
              total        used        free      shared  buff/cache   available
Mem:        1882060      972320      141728      108680      768012      593108
Swap:             0           0           0

上記は、VPSの2Gの例です。
左上が、トータルメモリです。
その右側が、「used」ですので、使われているメモリです。
実際に空いているメモリ容量は、「141メガ」ほどになります。

「広告」

MySQLが使っているメモリ

MySQLが使っているメモリを調べるには、「ps」コマンドを利用します。
「ps aux」と「aux」というオプションを使います。

# ps aux|grep mysql
mysql    30614  0.1 20.5 1615344 387056 ?      Sl   OctXX  11:52 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

左から、5列目の数字が、VSZ(仮想メモリ)で、その右側が、6列目のRSS(物理メモリ)で、実際に使われているメモリになります。

VSZは、仮想メモリであり、物理メモリよりも、大きなメモリを扱うことが出来ます。
MySQL起動時に、ある程度、大きな領域を確保します。

「広告」

スワップ

物理メモリが足りなくなってきた場合、OSは、あるプロセスが使っていないメモリを、メモリを欲しがっているプロセスに割り当てます。

メモリを使われたプロセスが、眠りから覚めて、動き出すと、貸し出していたメモリを、戻して、自分のために使います。

このやりとりを、スワップといいます。

スワップが激しく起こると、OS自体が重くなり、処理能力の低下を招きます。

スワップが起こっているかどうかは、「vmstat」というコマンドを使います。



上記の「si」「so」のところです。
「スワップイン」「スワップアウト」の略です。

「広告」

OSのメモリに対する、MySQLのメモリ割り当て

OS全体のメモリ利用率などを見るには、「htop」コマンドが便利です。



↑ 1.06Gぐらい使われています。

このサーバーは、現状では、メモリ不足はないと考えます。
ワードプレスのPV数が莫大になったりすると、メモリも少なくなるでしょう。
そう考えると、スケールアップできるVPSは、便利ですね。

「広告」

MySQLが利用するメモリの容量を少なくする・・・

MySQL起動時は、最低限のメモリですが、時間の経過とともに、MySQLが使っているメモリが増加していきます。
無限に増加をするわけではなく、あるところで、落ち着くはずです。

意図的に、MySQLを再起動をしてみます。

# systemctl restart mysqld
# ps uax|grep mysql
mysql    21703  8.0  9.4 1119916 176936 ?      Sl   14:44   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid


VSZ 1.1G
RSS 176M
と、なっています。

再起動前の
VSZ 1.6G
RSS 387M
よりは、少ないメモリ容量で動いています。

# free
              total        used        free      shared  buff/cache   available
Mem:        1882060      784888      230152      108680      867020      778268
Swap:             0           0           0

↑「free」コマンドでも、少なくなった事がわかります。



↑「htop」コマンドも、同様に、少ないメモリで稼働をしています。

「広告」

MySQLメモリの勘所・・・

MySQLのメモリ利用量は、時間の経過とともに、大きくなります。
「なんか遅い」と感じた場合、メモリが足りない可能性があります。
なぜ、足りなくなるのか・・・
・PVが多くなった
・あるプラグインがメモリ食い
・そもそも、メモリが少ないサーバー
など、いろいろあるかと思います。

まずは、現状把握から・・・

タイトルとURLをコピーしました