nixosでシステムサービスのCPU / Ramを制限する方法は?

nixosでシステムサービスのCPU / Ramを制限する方法は?

私のメタベースサービスはすべてを食べています。マイコンピュータのリソース、解決策を見つけましたが、リソース使用量を制限する方法が必要でした。

nixosでどのように設定しますか?

❯ nixos-version
22.05.2123.ede02b4ccb1 (Quokka)

私のサービスが設定されました:

  systemd.services.metabase = {
    description = "Metabase server";
    wantedBy = [ "multi-user.target" ];
    wants = [ "postgresql.service" "nginx.service" ];
    after = [ "network.target" "postgresql.service" ];
    environment = {
      JAVA_OPTS = "-Dc3p0.maxPoolSize=2 -Xms128m -Xmx1024m";
      MB_DB_TYPE = "postgres";
      MB_DB_DBNAME="metabase";
      MB_DB_HOST="127.0.0.1";
      MB_DB_PORT="5432";
      MB_DB_USER="postgres";
      MB_PLUGINS_DIR = "/var/lib/metabase";
      MB_JETTY_HOST = "127.0.0.1";
      MB_JETTY_PORT = "3000";
    };

    serviceConfig = {
      DynamicUser = true;
      StateDirectory = "/var/lib/metabase";
      ExecStart = "${pkgs.metabase}/bin/metabase";
      RuntimeMaxSec = 86400;
      Restart = "always";
      RestartSec = 1;
    };
  };

答え1

簡単にsystemdを使用できます。リソース制御オプション存在するserviceConfig

関連情報