如何在Linux下做好资源限制?

假设我现在想开个公司对外提供网站托管服务,比如万网、hostmonster这样的,如何做好资源限制以免一个用户把整个机器的资源全占了?我需要统计每个用户用了多少硬盘(这个容易)、多少内存、多少CPU、多少网络带宽,并加以限制。这里说的用户就是OS中的一个user。我只知道一些很老的工具,比如chroot、setrlimit、fs quota,他们只能部分的解决我的问题。就拿CPU来说,setrlimit是限制了这个进程最多只能用多少秒,对于MySQL/apache这样的daemon进程,你说我填多少合适呢?我希望它一直跑下去,但是又不想由一个进程把所有CPU一直全占满。比如对于MySQL我想限制一个查询的最长执行时间为多少毫秒。

我在想,假如MySQL只有MyISAM表的话,Filesystem snapshot和flush tables with readlock配合起来做备份,非常棒啊。对服务的影响降低到了最低(否则就得单开一个slave专门做备份)。可为啥没怎么听说谁在这么用呢?

我最近正在搜集关于如何提高MySQL安全性的资料,整理好了之后发上来。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥