こんにちわ。Adachinです。

前回、swapという言葉が出ましたが、

ちょっと概論とその調整についてブログします。


■swapとは

実メモリーから使用中の内容の一部を取り出して、
退避するためのハード・ディスク上の領域。

いくらメモリーの容量がたくさんあっても
swap領域はちゃんと設定したほうがいいと思われる。


■swap枯渇の原因

じゃあなんでこんなことになるのか。

1, 物理メモリの空きが不足している

2,物理メモリの空き領域が断片化している

3,ApacheのMaxclientsの値がデカすぎる

2の物理メモリの空き容量が足りても、領域を確保できるまで物理メモリに存在するページを
swapしてしまうという・・・

そこらへんはswapしないように調整しましょう。


■メモリー容量の確認

まだ2しか使っていないことが分かる。

■調整方法

・Swappinessとは
カーネルがswap処理を行う頻度を変更するためのパラメータ(0~100)

低い値を設定するとカーネルは可能な限りswapを行わないようにし、
高い値を設定すると積極的にswap領域を利用しようとする。
既定の値は60となり、大抵のシステムでは100に設定すると全体的なパフォーマンスに悪影響を及ぼす。0を含め低い値に設定すると応答速度が向上(反応までの遅延が減少する)とされる。

値(0 ~ 100) スワップ頻度
vm.swappiness = 0 メモリが一杯になるまでスワップを利用しない
vm.swappiness = 60 規定値
vm.swappiness = 100 全体のパフォーマンスに影響しうるほど積極的にスワップ処理を行う

 ■現在値の確認

or

 ■一時的な変更

or

 ■恒久的な変更

・再読み込み


■まとめ

swapの設定は難しいので
よく勉強しないとわからん。

次回はOOM Killerについてブログします。

The following two tabs change content below.

あだちん

1989年生まれ。 SRE/CRE。ラッパー担当。2013年新卒に自宅サーバを構築し、この技術ブログを立ち上げたが、 2017年に電源が壊れConoHaにリプレイスした。 好きな構成管理ツールはAnsible,Terraform。インフラならAWS/Docker。言語歴:Python,Golang。WEBサーバならH2O。そして「脆弱性スキャナVuls」のOSS活動もしており、広報/エバンジェリスト/VulsRepo init file,chatwork通知のコントリビュータでもある。現在では分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなそうと奮闘中。

コメントを残す