[Users] Resource temporarily unavailable になった時
master @ zio-matrix.net
master @ zio-matrix.net
2014年 11月 29日 (土) 22:48:53 JST
瀧 さん
難波です。
> add capped-memory
> set physical=16G
> end
>
> とかですよね。
ですね、zonecfg 打つこと殆どないです。
xml 直書、zonecfg verify してます。
> っていうか、実際問題、rcapって「よほどの事情」が無い限り「いらない」です。
> なぜかというと、全Zoneの間で、1つでも臨界点に達し、rcapdが動き始めたら、
> ページスキャナが動き始めて、ものすごくCPUパワーを使い始めます。
> その結果、全体が遅くなるので、
> 「どうしてもこの子達だけはSwapアウトせずにオンメモリにいて欲しい」
> という制御が目的じゃ無い限り、使い道が難しいんですよね。
cpucap は上記のような事情?か何かで 富士通の公開資料で 11 から使うな
ってあって外したのですが、memcap は慣例で残してました。
Sol10 の頃だと 8-16GB でがっつり使われると足りなかったので、
使ってました。
rcapd が CPU 食ってるのも知ってます。
リソースじゃぶじゃぶなら、キャッピングなし で良いんですかね。
サービスがリソース使い切れるほどチューニング出来てない のが制限かなと。
global の swap を食われたのが原因な気がしてきました。
SSD なので、物理メモリより swap が小さいので。
capped-memory を廃止して
<rctl name="zone.max-swap">
<rctl-value priv="privileged" limit="XXXX" action="deny"/>
</rctl>
を追加かな。
On 2014/11/29 22:37, 瀧 康史 wrote:
> 瀧です。
>
> そっちはダメですね。
>
>
> add capped-memory
> set physical=16G
> end
>
> とかですよね。
>
>
> こっちはどうですか?
>
> add rctl
> set name=zone.max-swap
> add value (priv=privileged,limit=17179869184,action=deny)
> end
>
> 稼働中のZoneなら、僕が前に書いたブログをみて変えてみてください。
> http://kohju.justplayer.com/Tips_Solaris_zones_apply.html
>
>
>
>
>
> capped-memoryってのはrcapdが動いていて、この子がポーリングしながら、メモリの制限をしています。
>
> たとえば、こんなです。
> % rcapadm
> state: enabled
> memory cap enforcement threshold: 0%
> process scan rate (sec): 15
> reconfiguration rate (sec): 60
> report rate (sec): 5
> RSS sampling rate (sec): 5
>
> で、ポーリング毎に、RSS(レジデントセットメモリ)をみて、
> こえていたら、Swapに落としたりするわけです。
>
> ポーリングである以上、そのポーリング間隔中にメモリを使われてしまったら制限がききませんし、
> そもそもSwapに落とされるので、Global側のメモリも使われてしまいます。
>
>
>
> Solaris含め、高度なUNIXは、VirtualMemory(=実質的なメモリ)であって、
> 物理メモリはその時にテーブルに載っているキャッシュみたいなものです。
>
> rcapは実質的にはテーブルに載せるものの取捨選択の重み付けをする為のものであって、
> 実際にメモリの制限をするためにはswap側(=実質的なメモリ側)の方で制限をかけます。
>
>
>
> ・・・・
>
> っていうか、実際問題、rcapって「よほどの事情」が無い限り「いらない」です。
> なぜかというと、全Zoneの間で、1つでも臨界点に達し、rcapdが動き始めたら、
> ページスキャナが動き始めて、ものすごくCPUパワーを使い始めます。
> その結果、全体が遅くなるので、
> 「どうしてもこの子達だけはSwapアウトせずにオンメモリにいて欲しい」
> という制御が目的じゃ無い限り、使い道が難しいんですよね。
>
>
>
>
>
>> 2014/11/29 22:24、master @ zio-matrix.net のメール:
>>
>> 瀧 さん
>>
>>
>> 難波です。
>>
>> 昔ながらのこれです。
>>
>> <zone>
>> ・・・
>> <mcap physcap="17179869184"/>
>> ・・・
>> </zone>
>>
>>
>> On 2014/11/29 22:21, 瀧 康史 wrote:
>>> 瀧です。
>>>
>>> zonecfgってどうなってます?
>>>
>>> memory capはどの方法でかけてるんでしょう?
>>>
>>>
>>>> 2014/11/29 19:54、master @ zio-matrix.net のメール:
>>>>
>>>> 難波です。
>>>>
>>>>
>>>>
>>>> 先日 zone 上の Apache 2.4 MPM_worker の cgid に負荷をかけたところ、
>>>> global まで波及して?? 大変なことになりました。
>>>>
>>>> OS : Solaris11.1/SPARC
>>>> CGI: 計測用の簡単なもの @ Apache 2.4 MPM_worker cgid
>>>> MEM: 16GB を割り当て(zone.cfg でキャップ)
>>>>
>>>>
>>>> (11)Resource temporarily unavailable: apr_thread_create: unable to
>>>> create worker thread
>>>>
>>>> となったので、刺さった か スローダウン だろうな。 という事で
>>>> ベンチマークを中断しました。
>>>>
>>>>
>>>> その後、global およびその他の zone で Resource temporarily unavailable
>>>> が出るようになって、新規の fork() がほぼ失敗するようになりました。
>>>> ほぼ失敗 というのは稀に一部のコマンドは成功する状態です。
>>>>
>>>> # fork しなくていいプロセス類は応答を返してくれました
>>>>
>>>>
>>>> 調べようとしてもコマンドの応答が Resource temporarily unavailable に
>>>> なって出力を得られない 最悪刺さってプロンプトが戻ってこない 自体に
>>>> なっていました。
>>>>
>>>>
>>>> Resource temporarily unavailable なのでメモリが枯渇した という方向でも
>>>> 調査しましたが、50% の空きがありました。
>>>> Resource temporarily unavailable でも時々 top が成功するので
>>>> その出力から見ています。
>>>>
>>>>
>>>>
>>>> ベンチマークした CGI が無負荷でプロセスが残っていたので、kill
>>>> しましたが、改善されず、reboot や shutdown も Resource temporarily
>>>> unavailable で受け取らないので -> stop /SYS で止めました。
>>>>
>>>> # (調べている間に)30分以上待っても解消されませんでした。
>>>>
>>>>
>>>>
>>>> kenel-zone にすれば回避できるかな? という感じですが、zone のベンチ
>>>> マーク等で似たような経験がある方はいませんか?
>>>>
>>>> これだと DoS られた挙句、global 巻き添え死 になってしまうので。
>>>>
>>>>
>>>>
>>>> 改修案としては
>>>>
>>>> 1. Solaris11.2 kernel-zone
>>>>
>>>> 2. zone のメモリキャップ(バグかもしれないので)外す
>>>>
>>>> 3. MPM_worker をやめる(prefork でも構わないので)
>>>>
>>>>
>>>> と言ったところでしょうか。
>>>>
>>>>
>>>>
>>>> Xeon と比べてスレッドの多い SPARC T ですが、いろいろ上手く
>>>> 使えていません。
>>>>
>>>>
>>>> たとえば、dnsperf で
>>>>
>>>> $ /usr/local/nom/bin/dnsperf -c 256 -s SERVER \
>>>> -d /usr/local/nom/share/queryfile-example-current_10000
>>>>
>>>> こんな事すると dnsperf のプロセスが刺さって、延々 LA 256+ という
>>>> とてつもない事態になります。(冷却テストにしかならない)
>>>>
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users @ opensolaris.gr.jp
>>>> https://mx.opensolaris.gr.jp/mailman/listinfo/users
>>>
>>
>>
>
Users メーリングリストの案内