linux – EC2:定期性能问题,没有明显的资源争用

前端之家收集整理的这篇文章主要介绍了linux – EC2:定期性能问题,没有明显的资源争用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在Ubuntu 9.10 x64 xlarge Amazon EC2实例上运行LAMP memcached.该服务器每秒处理几百个请求,其中约60%是静态的,其余的都以某种方式与 mysql和/或memcached交互.该服务器遇到了两个可能相关的性能问题,并且已经证明难以诊断.除非另有说明,否则以下所有统计数据均已使用CloudWatch,munin或vmstat / iostat / top收集.

>第一个问题是每隔几分钟就会出现高流行率的常规尖峰,在此期间,大多数apache会在所有未挂起之前同时进行大约10-30秒的流程.在此期间没有增加的磁盘或网络负载,磁盘队列保持低电平,没有交换,等等.
>更严重的是,在高峰时段,服务器有时会突然出现性能急剧下降,将服务请求降低到之前的1/3.一旦开始,这种性能下降可以持续2到8小时,然后再次突然恢复到完全性能.当发生这种情况时,就像系统停止做任何事情一样. cpu利用率,磁盘负载和网络负载(由CloudWatch报告)同时按比例下降,但没有磁盘争用.磁盘队列和吞吐量都会下降并且始终远低于最大值,尤其是在这些下降期间.编辑:此问题已得到解决. Apache正在耗尽工作进程,并且出于某种原因认为这是完全崩溃性能的一个很好的理由,即使对于那些工作正常的进程也是如此.

例外情况是网络读取,它保持与以前一样高,表明服务器仍然像以前一样以高容量访问.如果我们在发生这种情况时尝试自己联系服务器,那么服务器速度非常慢,并且通常会在请求得到服务之前断开连接.应该注意的是,无论内存使用率或cpu利用率在任何时候都不是特别高,无论性能是否正在下降:cpu%很少超过10%,磁盘未满或拥塞.我们还没有能够在这些下降过程中收集交换性能的数据,但正在尝试这样做.

事实上,我们对可能导致这些神秘问题的想法缺乏认识,并且越来越担心这可能是EC2本身的问题(或错误).当我们的流量达到峰值时,似乎总是出现大量下降的事实(尽管,这并不意味着服务器接近于最大限度地利用其可用资源),这不仅仅是巧合.

所有MySQL数据库和日志都托管在EBS卷上,所有静态内容都托管在单独的不同EBS卷上. Apache服务每秒160-240次请求,每秒MysqL 180-200次查询,查询速度慢〜0%,memcached命中率约为90%.负载平均值倾向于在3左右徘徊.禁用Apache访问日志记录以最小化磁盘访问.

解决方法

最有可能(如您所述,您发现了第二个问题的解决方案)这些问题是配置或基于其他问题. EC2 / EBS /任何云技术都不是其中的根源.这些是您在任何环境中遇到的问题,与迄今为止收到的答案相反.

此外 – 亚马逊确实提供SLA.有一些小的情况,尽管极少数情况下某些资源可能会引起争议.但是,考虑到您目前的使用情况,不太可能.我将继续对各种争论点进行诊断研究,并与亚马逊网络服务的技术团队进行对话.还要查看他们的论坛,因为那里通常有很多知识渊博的人.你可能知道这些论坛,但为了以防万一 – 请在这里查看:https://forums.aws.amazon.com/index.jspa

另外,从架构的角度来看,您是否考虑过在多个EC2实例之间分配此负载并进行负载平衡?这是一个应该解决其中一些问题的选项.另外,从您正在讨论的架构来看,如果您在一些稍微不那么强大的实例之间进行分配并分配工作,那么整体可能会更好.另一个优点是,如果您的网站/服务继续增长,您处于水平扩展而不是垂直扩展的良好位置,后者当然是有限的.

猜你在找的Linux相关文章