3.6 微调服务器的设置
对于 Apache, 有无数的文档说明了如何发挥服务器的虽大性能; 特别重要的是确保 MaxClients
足够大以接受你期望的并行请求数, 但这个值不能高于 RAM
允许的数量; 此外, 我们建议关闭 KeepAlive
或确保 KeepAliveTimeout
设置仅为几秒钟; 否则大量来自公网和队伍的页面请求很容易用尽 Apache 的进程资源, 导致网站无响应, 还会影响到后台的评测
对于 PHP, 使用像 Alternative PHP Cache
(Debian 软件包 php-apc
) 这样的操作码缓存有利于提高性能; 要上传大型测试用例, 请参阅 内存限制 部分
可能需要或微调一些 MySQL 的默认设置:
max_connections
: 默认值 100 太小了, 因为 Apache 线程的链接缓存, 设置成 1000 更为合适max_allowed_packet
: 默认值 16MB 对于一些大型测试用例来说太小了; 这应该在 MySQL 服务器和客户端配置中进行修改, 并设置成最大的测试大小的 两倍innodb_log_file_size
: 由于对于redo log
的更改, 对于 5.6.20 或更新版本的 MySQL 来说, 默认值 48MB 太小了; 你应该把它至少设置为最大的测试用例大小的 十倍Root 密码: MySQL 对 root 用户默认是没有密码的, 十分有必要设置一个
当需要最大化性能时, 你可以考虑对
scorecache
和rankcache
数据表使用Memory
引擎; 当服务器完全宕机时, 它们会丢失信息, 但是可以从控制台界面(jury interface)重新计算
Last updated