我正在运行一个 VPS 服务器,上面运行着 6 个 .net 网站/应用程序。我在服务器性能方面遇到了问题,主要是内存不足。我联系了将服务器租给我的公司,他们告诉我这是因为我还在服务器上运行了 sql server 2008 express。所以我继续删除它,卸载等等。但我似乎仍然遇到问题。
例如目前,从资源消耗来看,虚拟内存是:
- 编号: vprvmem
- 当前使用量:894,328,832 字节
- 限制:1,073,741,824 字节
这意味着使用率约为80%。
有什么方法可以让我准确检查出哪些应用程序、网站、软件占用了大部分服务器内存,以便我可以考虑纠正它。我觉得 80% 太高了,无法应对流量激增的情况。我最近在机器上添加了额外的内存资源,但我更愿意找到问题的根源,而不是向它投入额外的内存。
也许这些级别是正确的,并且一切运行正常,但我想调查一下以确保。我对硬件的了解有限,因为我主要处理软件领域。
因此有任何工具可以帮助我或提供任何相关的建议吗?
答案1
您应该能够打开一些性能计数器来查看发生了什么。
我会从内存、缓存和可能的一些 .net 计数器开始。但正如 @Josh 提到的,1 GB 对于服务器来说太低了,即使它没有运行 SQL Server。
要查看正在运行的程序所使用的资源,请安装普罗曼看看记忆去了哪里。
答案2
Microsoft 服务器(尤其是 SQL Server)倾向于自动分配尽可能多的可用内存以实现更好的缓存/性能,这常常使人们误以为他们的系统内存不足。在这种情况下,这是正常行为。
请记住,Microsoft 服务器至少需要 1GB 的 RAM 才能运行一组极少量的应用程序/网站(而基于 Linux 的机器对于基本的 Apache 服务器来说只需要 128MB)。您添加的应用程序/服务越多,所需的 RAM 就越多。您可能可以禁用其他服务以提供更多可用 RAM。
根据您的描述,更有可能是服务器所处的硬件环境导致了速度缓慢。VPS 服务器在共享硬件环境中运行,这意味着您的虚拟实例与许多其他虚拟实例共享相同的物理 CPU 或 CPU。