質問

質問

質問

現在、AWS EC2インスタンスで特定のユーザーのリソースを制限しようとしています。オンラインでいくつかの調査をした後、メモリが制限されたcgroupにユーザーを追加するのに次の内容で十分であると思います。

$ sudo apt-get install cgroup-bin cgroup-lite libcgroup1
$ cgcreate -a root -t ray_zhang -g memory:limitgroup
cgcreate: can't create cgroup limitgroup: Cgroup, operation not allowed

エラーメッセージを検索しましたが、重要なコンテンツが見つかりませんでした。私はこれを実行しており、rootユーザーのメモリ使用量を100%に制限したいと思いますray_zhang

修正も試みましたが、cgrules.confメモリ制限を観察できませんでしたcgconfig.conf/etc私は次のことをしました。

/etc$ cat cgrules.conf
ray_zhang   memory  memlimit/
/etc$ cat cgconfig.conf
group memlimit {
     memory {
         memory.limit_in_bytes = 1024m;
     }
}

テストするには、次のようにしました(userにray_zhang渡されますsudo su ray_zhang)。

$ python
Python 2.7.12 (default, Jul 18 2016, 15:02:52)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x = ' '*3000000000

htopでは、約3GBのRAMを使用することがわかりました。これは、1024mの制限が遵守されないことを意味します。

努力する

もう一つの試みはこの回答 。指示に従って同じPythonテストを実行すると、メモリは再び無制限になり、次に観察されます。

$ cat /var/log/cgrulesengd.log | grep python
Cgroup change for PID: 22745, UID: 16975, GID: 996, PROCNAME: /usr/bin/python2.7 FAILED! (Error Code: 50002)

環境

私はかなり古いDebian OSバージョンを実行しています。

/etc$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04
Codename:   trusty
/etc$ uname -a
Linux <redacted> 4.4.0-154-generic #181~14.04.1-Ubuntu SMP Tue Jun 25 16:40:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

ただし、そのインスタンス内でUbuntu 18.04を使用してDockerコンテナ内でこれを試しましたが、まだ同じCgroup, operation not allowedエラーで失敗しました。

追加

私が疑うことの一つは仮想化された環境では、cgroupに問題があります。私がEC2で実行していることは、おそらく仮想マシンやコンテナ内で作業しているということです。おそらく、これはcgroupを使用できなくなりますか?

cgredonを使用するオンラインフォーラムも見ましたが、systemd次の3つをインストールしてもインストールされないようですapt-get

/etc$ which cgred
/etc$ sudo service cgred start
cgred: unrecognized service

どんなアドバイスも本当にありがとうございます。

ベストアンサー1

おすすめ記事