配置
命令行参数
服务相关:
- 默认监听地址是
localhost:5050
,使用-http-addr
指定 - 默认 gRPC 接口处于关闭状态,使用
-enable-grpc
开启 - 默认 gRPC 监听地址是
localhost:5051
,使用-grpc-addr
指定 - 默认日志等级是 info ,使用
-silent
关闭 或 使用-release
开启 release 级别日志 - 默认没有开启鉴权,使用
-auth-token
指定令牌鉴权 - 默认没有开启 go 语言调试接口(
localhost:5052/debug
),使用-enable-debug
开启,同时将日志层级设为 Debug - 默认没有开启 prometheus 监控接口,使用
-enable-metrics
开启localhost:5052/metrics
- 在启用 go 语言调试接口或者 prometheus 监控接口的情况下,默认监控接口为
localhost:5052
,使用-monitor-addr
指定
沙箱相关:
- 默认同时运行任务数为和 CPU 数量相同,使用
-parallelism
指定 - 默认文件存储在内存里,使用
-dir
指定本地目录为文件存储 - 默认 cgroup 的前缀为
gojudge
,使用-cgroup-prefix
指定 - 默认没有磁盘文件复制限制,使用
-src-prefix
限制 copyIn 操作文件目录前缀,使用逗号,
分隔(需要绝对路径)(例如:/bin,/usr
) - 默认时间和内存使用检查周期为 100 毫秒(
100ms
),使用-time-limit-checker-interval
指定 - 默认最大输出限制为
256MiB
,使用-output-limit
指定 - 默认最大打开文件描述符为
256
,使用-open-file-limit
指定 - 默认最大额外内存使用为
16KiB
,使用-extra-memory-limit
指定 - 默认最大
copyOut
文件大小为64MiB
,使用-copy-out-limit
指定 - 使用
-cpuset
指定cpuset.cpus
(仅 Linux) - 默认容器用户开始区间为 0(不启用) 使用
-container-cred-start
指定(仅 Linux)- 举例,默认情况下第 0 个容器使用 10001 作为容器用户。第 1 个容器使用 10002 作为容器用户,以此类推
- 使用
-enable-cpu-rate
开启cpu
cgroup 来启用cpuRate
控制(仅 Linux)- 使用
-cpu-cfs-period
指定 cfs_period if cpu rate is enabled (default 100ms) (valid value: [1ms, 1s])
- 使用
- 使用
-seccomp-conf
指定seecomp
过滤器(需要编译标志seccomp
,默认不开启)(仅 Linux) - 使用
-pre-fork
指定启动时创建的容器数量 - 使用
-tmp-fs-param
指定容器内tmpfs
的挂载参数(仅 Linux) - 使用
-file-timeout
指定文件存储文件最大时间。超出时间的文件将会删除。(举例30m
) - 使用
-mount-conf
指定沙箱文件系统挂载细节,详细请参见mount.yaml
(仅 Linux) - 使用
-container-init-path
指定cinit
路径 (请不要使用,仅 debug) (仅 Linux)
环境变量
所有命令行参数都可以通过环境变量的形式来指定,(类似 ES_HTTP_ADDR
来指定 -http-addr
)。使用 go-judge --help
查看所有环境变量