首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定Ubuntu环境中的瓶颈

如何确定Ubuntu环境中的瓶颈
EN

Server Fault用户
提问于 2010-11-05 19:59:59
回答 3查看 1.6K关注 0票数 4

应该运行什么样的测试来确定服务器上的瓶颈?我试图优化,以便我可以保持沉重的负荷峰值时,他们发生。我在灯光环境下运行Ubuntu。

EN

回答 3

Server Fault用户

回答已采纳

发布于 2010-11-05 20:20:02

我建议首先安装一个日志框架,比如munin,这样您就可以在基本负载上和服务器上的尖峰期间获得一些可用的数据。然后,我将监视SQL服务器上的查询(特别是缓慢的查询)。

使用这些信息,您可以确定这些情况是否非常特殊,或者它们是否只是将最后一颗钉子添加到高度加载的机器上,以及发生了什么,例如您正在耗尽RAM,某些进程有时会锤击磁盘,或者您的CPU才是问题所在。

票数 4
EN

Server Fault用户

发布于 2010-11-05 21:02:51

这是一个非常广泛的问题。要衡量任何事情,首先需要一个基线性能指标。安装muninmunin-node并评估基线。collectd和受人尊敬的SNMP也是一些选项,但对用户不太友好。

考虑一下你的申请。数据库太重了吗?有很多情报吗?CPU (视频编码)?首先,执行一些正常的web应用程序任务,并查看瓶颈所在。使用siegeabJMeter等其他工具实现这些任务的自动化。

在建立了一些基线度量和断点之后,您可以看到需要改进的地方。正如所述,这是一个广泛的问题,因此有一个相当广泛的答案:

  • I/O绑定:您是否不必要地访问数据库?您的查询缓存是什么样子?您需要优化写入或读取吗?您需要单独的DB服务器吗?
  • 内存绑定:假设您没有数据库I/O绑定,并且在内存中得到了尽可能多的数据集,那么您的数据集是否太大而无法使用内存?缓存命中率是多少?您正在使用像memcached这样的单独的缓存框架吗?
  • CPU绑定:您的应用程序能够利用多个核心/工作人员吗?您是否遇到线程锁或争用问题?考虑使用像nginx这样的轻量级like服务器,而不是Apache,或者使用反向代理设置。您还可以更改相关的sysctl.conf (内核)参数。
  • 网络绑定:在游戏的这个阶段非常不可能。

其他要点和考虑:

  • 可以使用mysqltuner.pl对数据库进行一些快速优化。
  • 尽量模拟真实的流量(重播访问日志是一个好的开始)。
  • 如果您曾经在生产DB设置中命中磁盘上的交换区域,那么您将陷入一个受伤的世界。

你认为一切都是相关的,重击你的服务器,调,重复。

票数 2
EN

Server Fault用户

发布于 2010-11-05 20:28:31

我发现最好的方法是在部署之前进行容量分析。然而,有一篇非常好的文章,你到底在寻找什么,我希望这会有所帮助。

http://blog.inarow.net/post/227533559/four-steps-to-diagnose-your-lamp-application

1)跟踪MySQL查询,占用第二次;2)监视PHP内存使用情况&日志Apache交付时间;3)日志PHP错误;4)在操作系统级别上拍摄快照

我还想将JMeter添加到其中。http://jakarta.apache.org/jmeter/

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/198747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档