cshの文脈で無制限と制限は何をしますか?

cshの文脈で無制限と制限は何をしますか?

科学モデルを実行する前に、およびを呼び出すcshスクリプトを実行していますunlimitlimitスクリプトは次のとおりです(簡潔にするために切り捨て)。

#!/bin/csh -f
# ...
unlimit
limit
/usr/bin/time $BLD/$EXEC # Where `$BLD/$EXEC` is the path to the model
date
exit

スクリプトを実行すると、次のエラーが発生します。

unlimit
unlimit: memorylocked: Can't remove limit
unlimit: maxproc: Can't remove limit
unlimit: openfiles: Can't remove limit

Bashで確認してくださいulimit

$ 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) 63711
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
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) 63711
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

unlimit(リソースを指定せずに)cshで次のことを試してください。

$ sudo csh
# unlimit
unlimit: memorylocked: Can't remove limit
unlimit: maxproc: Can't remove limit
unlimit: openfiles: Can't remove limit

limitcsh出力とunlimit指定されたリソースを使用しようとしました:

$ sudo csh
# whoami
root
# limit
cputime         unlimited
filesize        unlimited
datasize        unlimited
stacksize       8192 kbytes
coredumpsize    0 kbytes
memoryuse       unlimited
memorylocked    64 kbytes
maxproc         63711
openfiles       1024
# unlimit openfiles
unlimit: openfiles: Can't remove limit
# unlimit memorylocked
unlimit: memorylocked: Can't remove limit

私はUbuntu 14.04を実行しています:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty

私はモデルを実行する前にrunがすべてのリソース制約を削除しなければならないと思いunlimit、出力でlimitこれを確認する必要があります。ルートユーザーが制限を削除できないのはなぜですか?unlimitルートとしてのみ実行できますか?

ベストアンサー1

ulimit は、システム全体の sysctl で構成された最大使用量を超えて、これらのリソースの最大使用量を増やそうとします。また、オープンファイルなどの特定のリソースを無制限に使用してLinuxを構成することは物理的に不可能です。

すべてのリソースを制限するのは良い考えではありません。モデルが失敗した場合、実際には数GBのコアダンプが必要ですか?モデルの実行時にボトルネックを引き起こすリソースのみを追加してください。モデルを正常に実行できるため、コードは、元々作成されたコンピュータよりも最新のコンピュータでより多くのリソースを使用できることを意味します。

おすすめ記事