我正在为一些 Unix/Linux 课程开发一个共享的 Linux 服务器。大约有 100 到 500 名学生将使用这个系统,但预计并发数不超过 50。我正在尝试设置 ulimits(最好的方法?)以确保没有一个用户可以导致系统崩溃。这不需要严密的安全,只要足以防止随机 forkbomb 或故意过载即可。
系统本身性能中等,配备两个插槽和 16 GB 内存。学生的工作不会是高性能的,主要是学习 shell 脚本、Web 应用程序开发、数据库交互等。
这是我目前所拥有的。我真的只是随口说说而已:
#Test settings for lab
@student hard nproc 20
@student hard memlock 50000
@student hard locks 20
@student hard cpu 10
太低?太高?我知道还有很多其他选择,但我也不想过多考虑这个问题,愿意听取其他建议或其他明显缺失的设置。
答案1
nproc 可能太低了。我原本期望 15 年前在学生集群的 Sun 服务器上看到这样的 nproc 数字。现代 Linux 桌面环境将使用窗口管理器和一些后台任务来满足这一要求(请注意,我假设您希望他们通过 xdm 或类似的东西登录)。
mlock 将限制用户可以使用 mmap 锁定到核心的内存量。50MB – 也许。