wordpress が表示されなくなった。
「データベース接続確率エラー」と出る。mysql(MariaDB)につながっていない。
ターミナルから mysql の状態を確認する。
$ mysql ping
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
[kanasui97@ik1-114-63704 ~]$
エラーが出る。サーバーを再起動したらつながった。
sudo reboot
mysql のエラーを確認してみる。
2023-03-22 14:42:14 0 [Note] InnoDB: Number of pools: 1
2023-03-22 14:42:14 0 [Note] InnoDB: Using SSE2 crc32 instructions
2023-03-22 14:42:14 0 [Note] InnoDB: Initializing buffer pool, total size = 128M , instances = 1, chunk size = 128M
2023-03-22 14:42:14 0 [ERROR] InnoDB: mmap(137035776 bytes) failed; errno 12
2023-03-22 14:42:14 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2023-03-22 14:42:14 0 [ERROR] InnoDB: Plugin initialization aborted with error G eneric error
2023-03-22 14:42:14 0 [Note] InnoDB: Starting shutdown...
2023-03-22 14:42:15 0 [ERROR] Plugin 'InnoDB' init functio
「Cannot allocate memory for the buffer pool」メモリが少ないのが原因でデータベースサーバーが落ちた?
mysql がよく落ちる場合、swap 領域を作ることで問題解決できる場合があるとのこと。
swap とは交換という意味で、コンピューターの世界では、使用頻度の低いメモリーを一時的にハードディスク預けて、メモリーに余裕を持たせることを、swapという。swap 領域は、メモリーの割当先になる、あらかじめ確保してあるハードディスク内の領域のことらしい。
AmazonAWSで、MySQL がよく落ちる? そんな時はSWAP領域をチェック! - Qiita
Amazon AWSにてt1microサービスを利用していますが、MySQLがよく落ちるんです。それで、ログを確認したところ。。。 InnoDB: Initializing buff…
現在の swap領域の設定を確認。
free
total used free shared buff/cache available
Mem: 987700 402268 295368 40784 290064 403820
Swap: 0 0 0
swap領域がないのでつくってやる。
swap 領域の大きさの目安
第15章 swap 領域 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
Access Red Hat’s knowledge, guidance, and support through your subscription.
表15.1 システムの推奨 swap 領域
システム内の RAM の容量 | 推奨されるスワップ領域 | ハイバネートを許可する場合に推奨されるスワップ領域 |
---|---|---|
⩽ 2 GB | RAM 容量の 2 倍 | RAM 容量の 3 倍 |
> 2 GB ~ 8 GB | RAM 容量と同じ | RAM 容量の 2 倍 |
> 8 GB ~ 64 GB | 最低 4GB | RAM 容量の 1.5 倍 |
> 64 GB | 最低 4GB | ハイバネートは推奨されない |
1G のスワップファイルを作る
dd if=/dev/zero of=/swapfile bs=1M count=1024
#2G の場合
dd if=/dev/zero of=/swapfile bs=1M count=2048
#6G の場合
dd if=/dev/zero of=/swapfile bs=1M count=6144
スワップ領域を作成
mkswap /swapfile
スワップ領域を有効
swapon /swapfile
この時点で swap領域は確保されたはずだが、再起動した時にマウントされないので、 /etc/fstab
の一番下に以下の1行を追加。
/swapfile swap swap defaults 0 0