我有ISPconfig的Centos 6 Web服务器(Apache-itk,PHP,MySQL)。 我在这个networking服务器上有大约100个网站,他们都属于我。 我必须能够跟踪每个站点消耗多less资源(stream量,CPU,RAM),并且可能会限制某些站点的资源,或者优先考虑其他站点。 没有使用虚拟化,最好的方法是什么? 共享networking主机如何pipe理资源?
编辑:
stream量 :ISPconfig显示stream量使用情况(网站 – >网站stream量)。 对我而言足够了。
由Apache的CPU和RAM :因为每个Apache虚拟主机运行在不同的用户(MPM-itk),我只需要知道每个用户消耗资源超时。 (我已经试过,但还没有得到如何使用它)
CPU和RAM的MySQL :这是最难的部分! 所有的mysql实例都在mysql用户下运行。 如何跟踪每个mysql用户的mysql资源使用情况?
CloudLinux和BetterLinux似乎很有趣,有没有其他的select呢?
特别是使用cgroups , cpuacct和内存控制器。 他们会给你关于资源使用情况的细粒度统计。 您可能需要调整您的设置,确保您的stream程绑定到相关的控制组(因为您的站点在不同的系统帐户下运行,这不应该很难实现)。
如果不使用cgroup,则还可以安装psacct软件包并使用sa -m命令(使用accton预先启用记帐)。 但是,这种方法只能解决完成的stream程。 好的一面是,除了软件包的设置和启用会计之外,这不需要对系统进行任何修改。
这是困难的。 由于您的所有网站都是由一个MySQL实例提供的(如果我理解您的话),您不能依赖上述的每个进程/用户统计信息。 尽pipe如此,仍然存在一些解决scheme: MariaDB和Percona Server都可以作为传统MySQL的直接替代品。 任一产品都包含用户统计信息: 在MariaDB和Percona服务器中 。 这个统计数据可以给你一个关于你的数据库如何被不同用户使用的简要概述。
你也不应该忽视传统的方法:
show full processlist进程列表),当你注意到你的数据库性能拥挤; mysqldumpslow脚本(它包含在MySQL发行版中)。