# 3.18 可选功能

## 每台机器多个评测进程(judgedaemons)

你可以在一台多 CPU 或 多核计算机上运行多个 judgedaemon, 为每个 judgedaemon 绑定一个 CPU 核心

为此, 将额外的非特权用户添加到系统中, 例如使用 `useradd` 添加用户 `domjudge-run-<X>` (其中 X 为 0,1,2,3), 参考 [安装 judgehost](3.7-installation-of-a-judgehost); 最后用 `judgedaemon -n <X>` 启动每一个 judgedaemon, 并绑定到核 X 上

## 加密通信(HTTPS)

DOMjudge 可以配置在 HTTPS 上运行, 于是队员和裁判可以通过加密的 `SSL/TLS` 连接安全地与 domserver 进行通信; Apache 手册和网上的很多教程都记录了为 Apache 设置 SSL

judgedaemon 必须识别你正在使用的 `CA`, 否则, 它们将拒绝通过 HTTPS 进行连接; 如果你的 judgedaemon 给出了关于不受信任证书的错误信息, 请将你的 domserver 证书放在每个 judgehost 的 `/etc/ssl/certs/yourname.crt` 下(以及使用命令行 submit client 的队员机器上) 并运行: `sudo c_rehash`

当通过 Domjudge 中的导入功能从 ICPC 注册系统加载 队伍时, [https://icpc.baylor.edu](https://icpc.baylor.edu) 的证书必须同样被本地安装接受, 如果没有, 则通过上述过程添加

## NTP 时间同步

我们建议安装 `NTP-daemon` (网络时间协议) 以确保 domserver, judgehost, 裁判和队员机器之间的时间保持同步

## 打印机

建议尽可能给队员机器配置本地桌面打印机: 这有最简单的界面, 并允许队员在其编辑器中进行打印

如果这不可行, DOMjudge 支持通过 Domjudge web 界面支持打印: DOMjudge 服务器需要能将上载的文件传递给打印机; 它可以通过管理员界面中的 `enable_printing` 选项启用; 用于将文件发送到打印机的指令可以在 `lib/www/printing.php` 的 `send_print()` 函数中更改

## 判断的合理行

可以考虑以下问题来提高判断的合理性

* 禁用 CPU 频率调整和 Intel "Turbo Boost" 以防止 CPU 功率波动
*   禁用地址空间随机变化以为内存寻址错误的程序提供更可重现的结果; 为此你可以将以下内容添加到 `/etc/sysctl.conf` 中:

    ```
    kernel.randomize_va_space=0
    ```

    这将在重启后永久恢复这些设置; 运行 `sudo sysctl -p` 直接激活这些设置
