centos6.8 メモリ使用量の考察
メモリ解放について調べていて知ったことについて。
以下サイトからの引用。
Linux の top コマンドや free コマンドで表示される cached は、勝手にどんどん増えていきます。free がなくなるとこの cached が少しずつ解放されて使われます。
cached も buffers も空きメモリの一部ですので、これらが溜まっているからといって無理やり解放させる必要は通常はありません。
cached を溜めているのはパフォーマンスのためなので、解放させると通常使用時のパフォーマンスが落ちます。逆にこれを解放しておかないと、パフォーマンスの測定などで、正しい計測ができません。
linuxのキャッシュには、ページキャッシュとSlab(dentry:ディレクトリエントリやinodeのキャッシュ)キャッシュが存在する。キャッシュをクリアしたい場合、以下のコマンドを実行すればよい。
sync echo 3 > /proc/sys/vm/drop_caches
キャッシュの状況についてはfreeコマンドが分かりやすい(-mでMB表示)
free -m
mysqlとhttpを動かしている状況で900MBくらいメモリを使用している状況で以下の3つのコマンドを実行してみたら、メモリ使用量が200MBまで減ったw
service httpd restart service mysqld restart echo 3 > /proc/sys/vm/drop_caches
やっぱりmysqlとhttp(php)の2つがメモリを食う筆頭なんだよなあ。サーバー組む時も、この2つを別サーバーに分けるのはやっぱり理にかなっているってことだな。
参考サイト
Linuxでページキャッシュを確認・解放してみた - Qiita
【Linux】メモリのキャッシュをクリアする at softelメモ
Linux:キャッシュを開放する(/proc/sys/vm/drop_caches) - ログってなんぼ
centos6.8 curlがメモリリークしていたのでバージョンアップした件
あるphpを実行していたらどんどんメモリが減っていって数日悩んでいたんだけど、やっと原因が分かったわ。php => mws sdk => curl っていう流れでcurlを実行していて、色んなサイトも参考したところ、まさかのcurlがメモリリークする原因だった。そんでcurlのバージョンアップしてみたら見事にメモリリークが解消された。単純にyumだと更新出来なかったので以下の手順で更新した。毎度のことだけど、参考サイトに感謝。
curl -V >curl 7.19.7 cd /usr/local/src/ wget http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/curl-7.64.1-2.0.cf.rhel6.src.rpm rpmbuild --rebuild curl-7.64.1-2.0.cf.rhel6.src.rpm >失敗したので以下適当に入れた物 yum install rpm-build yum install gcc yum install openldap-devel libmetalink-devel libnghttp2-devel nghttp2 perl-interpreter gnutls-utils yum --enablerepo=epel install libmetalink-devel yum --enablerepo=epel install libnghttp2-devel yum --enablerepo=epel install nghttp2 yum --enablerepo=epel install perl-interpreter yum install perl-Compress-Zlib rpmbuild --rebuild curl-7.64.1-2.0.cf.rhel6.src.rpm >再実行 >10-20分くらいかかる cd rpm -Uvh rpmbuild/RPMS/x86_64/curl-7.64.1-2.0.cf.rhel6.x86_64.rpm rpmbuild/RPMS/x86_64/libcurl-7.64.1-2.0.cf.rhel6.x86_64.rpm rpmbuild/RPMS/x86_64/libcurl-devel-7.64.1-2.0.cf.rhel6.x86_64.rpm curl -V >curl 7.64.1
参考サイト
https://mome-n.com/curl-7-19-7%E3%81%A7%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E3%81%99%E3%82%8B/
https://qiita.com/comefigo/items/6f2fe9c086550835c033
http://s-tajima.hateblo.jp/entry/2015/02/20/233615
https://dev.classmethod.jp/cloud/aws/dentry-cache/
https://qiita.com/KensukeSakakibara/items/6d1d59848d5b179f77c5
FXを始めるのにおススメサイト
低予算(1000通貨)で比較 | FX比較 低予算から始めるFXランキング 初心者の外為入門
php プログラムがメモリリークしているかチェックする方法
vmstatのfreeを見れば良い。メモリリークしていればfreeがどんどん減っていく。(目的以外のプログラムが動いていないか(cronとかで)注意。)
[root]# vmstat 1 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 99576 29064 300112 0 0 171 215 85 135 3 0 95 2 0 0 0 0 99452 29128 300116 0 0 0 876 139 381 2 1 48 48 0 0 0 0 99452 29136 300116 0 0 0 28 47 75 1 0 99 0 0 0 0 0 99328 29200 300120 0 0 4 528 133 331 2 0 96 2 0 0 0 0 99328 29208 300120 0 0 0 28 57 76 0 0 100 0 0 0 0 0 99328 29256 300124 0 0 0 124 107 284 2 0 97 1 0 0 0 0 99204 29320 300128 0 0 4 880 157 370 3 0 48 48 0 0 0 0 99204 29328 300128 0 0 0 28 55 75 1 1 97 1 0 0 0 0 99080 29376 300136 0 0 4 116 101 275 2 0 97 1 0 0 0 0 99080 29440 300148 0 0 0 984 152 390 2 0 46 52 0 0 0 0 99080 29456 300136 0 0 0 44 48 92 0 0 100 0 0 0 0 0 98956 29512 300144 0 0 4 512 133 318 2 0 96 2 0
FXを始めるのにおススメサイト
低予算(1000通貨)で比較 | FX比較 低予算から始めるFXランキング 初心者の外為入門
mysql5.6 メモリ使用量が増加した時の対策
ここ最近EC2で扱うデータ量が増えてきたせいなのか、いつの間にかmysqlのメモリ消費が50%前後(約450M)まで増えていて、それが原因なのか分からんけど、insertが頻繁にエラーになるようになって何とかしないと、と思った時の対策。
table_definition_cache=400
my.cnfにこれ追加しただけで10%前後まで減ったw。しばらく様子見
参考サイト
メモリ食い過ぎてたのは、mysqlの設定が原因だった - Qiita
MySQL 5.6 におけるパフォーマンススキーマの使用メモリー量 | スマートスタイル TECH BLOG
MySQLでtable_definition_cacheの値を変更する | 田舎に住みたいエンジニアの日記
MySQL5.6がやたらとメモリを消費する問題 - ワシはワシが育てる
MySQL5.6でメモリ使用量が肥大化したときの対処 | ハックノート
FXを始めるのにおススメサイト
低予算(1000通貨)で比較 | FX比較 低予算から始めるFXランキング 初心者の外為入門
レーザープリンター Canon LBP251 無線LANでプリントアウトが出来なかった件のメモ
付属のCDでドライバをインストールしようとするも、プリンタの検索でプリンタが見つからずにインストールが出来なかった件の対応
1. 標準セットアップではなくカスタムセットアップを選択
2. 以下のポートを追加
ポートの種類:Standard TCP/IP Port
IPアドレス:プリンタのIPアドレス(メニューから確認可能)
ポート名:適当(LBP251とか)
そうするとRaw <ポート番号> でポートが追加されるのでそいつでインストールすればok
なおRawポートはWindowsからプリンタを操作するためのポート
※各ポートの詳細について
<LPD>/<RAW>/<WSDマルチキャスト探索> 印刷プロトコルやWebサービスの設定をする
<HTTP> HTTP通信を無効にする
<SNMP> SNMPで監視/制御する
<マルチキャスト探索> デバイス管理ソフトウェアの設定をする
※各ポートのポート番号もプリンタのメニューから確認可能
マイナスも虚数も自然界には存在しない便宜上の概念
今日読んだ面白い記事2つ
マイナスについて
https://www.inc-reliance.jp/science/53976
虚数について
https://atarimae.biz/archives/500
低予算でのおすすめのFX口座はこちら。
http://s2fx.com/ranking/856.html
安全靴を買うならこちら。
http://azmaya.jp