
同じユーザーに対する複数のセッション。そのうちの1つが新しいプログラムを実行できない場合は、そのいずれも実行できず、そのユーザーの新しいログインも実行できません。他のユーザーは、新しいログインを含む新しいプログラムを正常に実行できます。
通常、ユーザー制限は limits.conf にありますが、ドキュメントには「すべての制限設定はログインごとに設定されます。グローバルまたは永続的ではなく、セッション期間中のみ存在します」と記載されています。
メモリがほとんど足りませんが(44GBが利用可能)、何をもっと見るべきかわかりません。同じUIDを使用しますが、他のUIDは使用しないすべてのセッションにグローバルに影響を与える制限は何ですか?
2016年6月12日午後8時45分に追加されるように修正されました。
以下を書くと、問題がX11に関連している可能性があることに気づきました。ボックス内のユーザーアカウントは、ほぼGUIアプリケーションでのみ使用されます。多くのリソースを使用して良いエラーメッセージを表示するbashで実行できる良いテキストベースのプログラムはありますか?ボックスはlsを実行できないポイントまで到達しませんでした。
残念ながら、この問題は通常、エラーメッセージをうまく残さないGUIプログラム(ChromeとFirefox)に影響します。 Chromeタブに空白があるか、まったく役に立たない「あっ、こんな!」エラーが表示され始めます。 Firefoxは起動を拒否します。私が受け取った唯一の部分的に便利なエラーメッセージは、bashでFirefoxを起動しようとしたときに発生しました。
[pascal@firefox ~]$ firefox --display=:0 --safe-mode
Assertion failure: ((bool)(__builtin_expect(!!(!NS_FAILED_impl(rv)), 1))) && thread (Should successfully create image decoding threads), at /builddir/build/BUILD/firefox-45.2.0/firefox-45.2.0esr/image/DecodePool.cpp:359
#01: ???[/usr/lib64/firefox/libxul.so +0x10f2165]
#02: ???[/usr/lib64/firefox/libxul.so +0xa2dd2c]
#03: ???[/usr/lib64/firefox/libxul.so +0xa2ee29]
#04: ???[/usr/lib64/firefox/libxul.so +0xa2f4c1]
#05: ???[/usr/lib64/firefox/libxul.so +0xa3095d]
#06: ???[/usr/lib64/firefox/libxul.so +0xa52d44]
#07: ???[/usr/lib64/firefox/libxul.so +0xa4c051]
#08: ???[/usr/lib64/firefox/libxul.so +0x1096257]
#09: ???[/usr/lib64/firefox/libxul.so +0x1096342]
#10: ???[/usr/lib64/firefox/libxul.so +0x1dba68f]
#11: ???[/usr/lib64/firefox/libxul.so +0x1dba805]
#12: ???[/usr/lib64/firefox/libxul.so +0x1dba8b9]
#13: ???[/usr/lib64/firefox/libxul.so +0x1e3e6be]
#14: ???[/usr/lib64/firefox/libxul.so +0x1e48d1f]
#15: ???[/usr/lib64/firefox/libxul.so +0x1e48ddd]
#16: ???[/usr/lib64/firefox/libxul.so +0x20bf7bc]
#17: ???[/usr/lib64/firefox/libxul.so +0x20bfae6]
#18: ???[/usr/lib64/firefox/libxul.so +0x20bfe5b]
#19: ???[/usr/lib64/firefox/libxul.so +0x21087cd]
#20: ???[/usr/lib64/firefox/libxul.so +0x2108cd2]
#21: ???[/usr/lib64/firefox/libxul.so +0x210aef4]
#22: ???[/usr/lib64/firefox/libxul.so +0x22578b1]
#23: ???[/usr/lib64/firefox/libxul.so +0x228ba43]
#24: ???[/usr/lib64/firefox/libxul.so +0x228be1d]
#25: XRE_main[/usr/lib64/firefox/libxul.so +0x228c073]
#26: ???[/usr/lib64/firefox/firefox +0x4c1d]
#27: ???[/usr/lib64/firefox/firefox +0x436d]
#28: __libc_start_main[/lib64/libc.so.6 +0x21b15]
#29: ???[/usr/lib64/firefox/firefox +0x449d]
#30: ??? (???:???)
Segmentation fault
[pascal@firefox ~]$ firefox --display=:0 --safe-mode -g
1465632860286DeferredSave.extensions.jsonWARNWrite failed: Error: Could not create new thread! (resource://gre/modules/PromiseWorker.jsm:173:18) JS Stack trace: [email protected]:173:18 < [email protected]:292:9 < [email protected]:315:40 < [email protected]:933:23 < [email protected]:812:7 < this.PromiseWalker.scheduleWalkerLoop/<@Promise-backend.js:746:1 < [email protected]:770:1 < [email protected]:284:9
1465632860287addons.xpi-utilsWARNFailed to save XPI database: Error: Could not create new thread! (resource://gre/modules/PromiseWorker.jsm:173:18) JS Stack trace: [email protected]:173:18 < [email protected]:292:9 < [email protected]:315:40 < [email protected]:933:23 < [email protected]:812:7 < this.PromiseWalker.scheduleWalkerLoop/<@Promise-backend.js:746:1 < [email protected]:770:1 < [email protected]:284:9
1465632860288addons.xpi-utilsWARNFailed to save XPI database: Error: Could not create new thread! (resource://gre/modules/PromiseWorker.jsm:173:18) JS Stack trace: [email protected]:173:18 < [email protected]:292:9 < [email protected]:315:40 < [email protected]:933:23 < [email protected]:812:7 < this.PromiseWalker.scheduleWalkerLoop/<@Promise-backend.js:746:1 < [email protected]:770:1 < [email protected]:284:9
1465632860289addons.xpi-utilsWARNFailed to save XPI database: Error: Could not create new thread! (resource://gre/modules/PromiseWorker.jsm:173:18) JS Stack trace: [email protected]:173:18 < [email protected]:292:9 < [email protected]:315:40 < [email protected]:933:23 < [email protected]:812:7 < this.PromiseWalker.scheduleWalkerLoop/<@Promise-backend.js:746:1 < [email protected]:770:1 < [email protected]:284:9
1465632860289addons.xpi-utilsWARNFailed to save XPI database: Error: Could not create new thread! (resource://gre/modules/PromiseWorker.jsm:173:18) JS Stack trace: [email protected]:173:18 < [email protected]:292:9 < [email protected]:315:40 < [email protected]:933:23 < [email protected]:812:7 < this.PromiseWalker.scheduleWalkerLoop/<@Promise-backend.js:746:1 < [email protected]:770:1 < [email protected]:284:9
1465632860290addons.xpi-utilsWARNFailed to save XPI database: Error: Could not create new thread! (resource://gre/modules/PromiseWorker.jsm:173:18) JS Stack trace: [email protected]:173:18 < [email protected]:292:9 < [email protected]:315:40 < [email protected]:933:23 < [email protected]:812:7 < this.PromiseWalker.scheduleWalkerLoop/<@Promise-backend.js:746:1 < [email protected]:770:1 < [email protected]:284:9
1465632860358DeferredSave.addons.jsonWARNWrite failed: Error: Could not create new thread! (resource://gre/modules/PromiseWorker.jsm:173:18) JS Stack trace: [email protected]:173:18 < [email protected]:292:9 < [email protected]:315:40 < [email protected]:933:23 < [email protected]:812:7 < this.PromiseWalker.scheduleWalkerLoop/<@Promise-backend.js:746:1 < [email protected]:770:1 < [email protected]:284:9
1465632860359addons.repositoryERRORSaveDBToDisk failed: Error: Could not create new thread! (resource://gre/modules/PromiseWorker.jsm:173:18) JS Stack trace: [email protected]:173:18 < [email protected]:292:9 < [email protected]:315:40 < [email protected]:933:23 < [email protected]:812:7 < this.PromiseWalker.scheduleWalkerLoop/<@Promise-backend.js:746:1 < [email protected]:770:1 < [email protected]:284:9
Segmentation fault
[pascal@firefox ~]$
[pascal@localhost ~]$ ulimit -aH
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 579483
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 579483
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[pascal@localhost ~]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 579483
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 32768
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[pascal@localhost ~]$ set /proc/*/task/*/cwd/.; echo $#
306
[pascal@localhost ~]$ prlimit
RESOURCE DESCRIPTION SOFT HARD UNITS
AS address space limit unlimited unlimited bytes
CORE max core file size 0 unlimited blocks
CPU CPU time unlimited unlimited seconds
DATA max data size unlimited unlimited bytes
FSIZE max file size unlimited unlimited blocks
LOCKS max number of file locks held unlimited unlimited
MEMLOCK max locked-in-memory address space 65536 65536 bytes
MSGQUEUE max bytes in POSIX mqueues 819200 819200 bytes
NICE max nice prio allowed to raise 0 0
NOFILE max number of open files 32768 65536
NPROC max number of processes 4096 579483
RSS max resident set size unlimited unlimited pages
RTPRIO max real-time priority 0 0
RTTIME timeout for real-time tasks unlimited unlimited microsecs
SIGPENDING max number of pending signals 579483 579483
STACK max stack size 8388608 unlimited bytes
2016年6月13日午後10時24分に以下の内容を追加して修正されました。
GUIの問題ではありません。今日ユーザーを訴えようとしましたが、役に立たなかった。まったく問題ありません。 ls、viを実行し、新しいユーザーを作成し、そのユーザーに対してsuを実行すると、そのユーザーに対してすべてがうまく機能します。終了して問題のあるユーザーに対してsuを試みますが、成功しません。 Bashは最初にロードされますが、終了しても機能しません。ルートに戻るには再接続する必要があります。
[root@firefox ~]# su - pascal
Last login: Sat Jun 11 03:08:47 CDT 2016 on pts/1
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: Resource temporarily unavailable
-bash-4.2$ ls
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: Resource temporarily unavailable
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: Resource temporarily unavailable
-bash-4.2$ exit
logout
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: retry: No child processes
-bash: fork: Resource temporarily unavailable
-bash-4.2$
[root@firefox ~]# ls -l /
total 126
lrwxrwxrwx. 1 root root 7 Jan 28 23:53 bin -> usr/bin
---- snip ----
drwxr-xr-x. 19 root root 23 May 27 18:03 var
[root@firefox ~]# vi /etc/rc.local
[root@firefox ~]# useradd test
[root@firefox ~]# su - test
[test@firefox ~]$ cd
[test@firefox ~]$ ls -l
total 0
[test@firefox ~]$ ls -l /
total 126
lrwxrwxrwx. 1 root root 7 Jan 28 23:53 bin -> usr/bin
---- snip ----
drwxr-xr-x. 19 root root 23 May 27 18:03 var
[test@firefox ~]$ vi /etc/rc.local
[test@firefox ~]$ exit
logout
[root@firefox ~]# su - pascal
Last login: Mon Jun 13 22:12:12 CDT 2016 on pts/1
su: failed to execute /bin/bash: Resource temporarily unavailable
[root@firefox ~]#
答え1
nprocが問題です。
[root@localhost ~]# ps -eLf | grep pascal | wc -l
4068
[root@localhost ~]# cat /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited
[root@localhost ~]#
manlimits.confステータス:
Also, please note that all limit settings are set per login. They are
not global, nor are they permanent; existing only for the duration of
the session. One exception is the maxlogin option, this one is system
wide. But there is a race, concurrent logins at the same time will not
always be detected as such but only counted as one.
nprocはログインするたびに強制されますが、グローバルに計算されるようです。したがって、ログインしたnproc 8192および5000スレッドを使用することは問題ではありませんが、同じUIDに対して同時にログインしたnproc 4096および50スレッドを使用すると、グローバル数(5050)がnproc設定より高いため、より多くのスレッドを作成できません。 。 。
[root@localhost ~]# ps -eLf | grep pascal | grep google/chrome | wc -l
3792
答え2
アカウントにまったくアクセスできない場合は、問題が何であるかを理解するのは難しいでしょう。ただし、システムまたはアプリケーションのログを確認してください。一部のプログラムがそこに手がかりを残すことを願っています(特に失敗したログイン試行について)。
実験のためにプログラムを実行できる場合は、各制限値を増やし、動作時期と試行が失敗(および表示)されるタイミングを確認して、どの制限値に達したかを確認できますEAGAIN
。各値に使用されているリソースを一覧表示することもできます。すべての制限に関するデータを収集するユーティリティは思い出せませんが、おそらく1つはあります。
問題がカーネル制限であると仮定すると、これらの問題は次のリストにリストされています。setrlimit
マニュアルページ。各ユーザーIDに適用される内容は次のとおりです。
RLIMIT_MEMLOCK
- スワップ不可能なメモリのサイズ。ログインがブロックされてはならず、スワップ不可能なメモリを要求するプログラムはほとんどありません。RLIMIT_MSGQUEUE
- メッセージキューのサイズ。ログインはブロックしてはならず、メッセージキューを使用するプログラムはほとんどありません。RLIMIT_NPROC
- 最大プロセス数。これは確かに〜する到達するとログインをブロックします。制限を増やすと、/etc/security/limits.conf
既存のセッションには影響しませんが、新しいプロセスには影響し、システム管理者が値を増やすとユーザーがログインできるようになります。RLIMIT_SIGPENDING
- 処理する最大信号数。ログインはブロックしないでください。sigqueue
キューシグナルを使用するプログラムはほとんどありません。
したがって、プロセスの制限が最も可能性が高いです。実行中のシェルにアクセスできる場合は、プログラムを実行してみるとエラーは非常に明白です。
$ ls
bash: fork: retry: No child processes
bash: fork: retry: No child processes
bash: fork: retry: No child processes
bash: fork: retry: No child processes
bash: fork: Resource temporarily unavailable
この制限の印刷物を使用できますulimit -u
。問題のユーザーとして実行されているシェルへのアクセス権があり、そのユーザーがまだsetuidプログラムを実行していない場合は、次のものを使用できます。 (ユーザーがリンクを読むことができるカーネルスレッドのset /proc/*/task/*/cwd/.; echo $#
リスト、これはユーザーがcwd
プロセス)。
答え3
オペレーティングシステムがプログラムを実行しようとしましたが、失敗したときにどのシステムコールが発生するかを確認してください。使用ストレス
とても簡単だと思います。リリーストレースがない場合。
一般的に言えば、より多くの情報を収集しようとする以外に選択肢はありません。
答え4
nproc
あなたは確信できますhttps://unix.stackexchange.com/a/289589/8337
-n
識別できるファイルを開きます。https://stackoverflow.com/a/21752125/32453
残りは不確実です。
ゴールドレベルに達するまで一度に1つずつ制限を増やすことはできますか? :)