[ubuntu-jp:5664] Re: メモリ増設したがパフォーマンスが上がらない

齊藤貴義 saito @ geek.sc
2017年 2月 16日 (木) 17:17:52 UTC


ディスクI/O以外にCPU使用率もボトルネックになっていそうと思っています。
topコマンドなどで処理実行時の状態を見ているのが一番かと思います。
top実行中に、Shift+mでメモリ処理が多い順、Shift+pでCPU使用率が多い順にソートできます。

ディスクI/Oの計測にはsarが良いかと。無い場合は以下で導入できます
sudo apt-get install sysstat

メモリ調査に関してはfreeだけではなく、vmstatやcat /proc/meminfoによる調査も参考になると思います。

また重い処理が大量のファイルを扱うのであればファイルディスクリプタの値がボトルネックの可能性もあるので、
上限値を調整すると良いかもしれません。

齊藤貴義

2017年2月17日 0:08 Fumihito YOSHIDA <hito @ ubuntu.com>:
>> 16GBメモリだったのを64GBに増設し、増設したメモリは認識されているようですが、
>> 重たい処理をしてもどうもメモリ使用量が16GBを超えず14G程度で止まり、処理スピードが上がりません。
>> メモリ増設後になにか設定の変更が必要でしょうか?
>
> freeを見ると以下の状態で、これはしっかりメモリを使っているように見えます。
>
>  ・純粋な空きページは501M
>  ・buff/cache が46GB食っている
>  ・ごく僅かにSwap usedがいる(2.9M)
>
> これはそもそもの前提として、以下のような特性を示唆するように思います。
>
>  ・プログラムが大容量のメモリを前提にしたものではない。なので14GB程度しか使われない。
>  ・しかしI/Oには一定の負荷がかかり、かつ、I/Oがボトルネックになっている。なのでcachedが猛烈に使われている。
>
> 断言はできないものの、この内容から推定すると、
>
>  ・基本的にはメモリ容量によって性能が向上しない、I/Oネックの負荷をかけている。
>  ・メモリの増設によって得られる効果はすでに最大限に得ている(大幅に積むとなんらかのティッピングポイントを
>   こえて性能が改善するシナリオはありえる)。
>
> と見るのがよさそうな気がします。I/Oやdirtyの割合を制御することで多少改善するようなことはできるかも
> しれませんが、現実的なアドバイスは、おそらく、「重たい処理」の内容を把握しないと厳しそうな気がします。


ubuntu-jp メーリングリストの案内