首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat,Apache,MySQL调优

Tomcat,Apache,MySQL调优
EN

Server Fault用户
提问于 2015-01-15 08:01:13
回答 1查看 282关注 0票数 0

我目前正在使用AWS基础设施来承载我的移动web应用程序。我使用Apache,mod_jk将请求传递给Tomcat,后者使用连接池进一步与MySQL DB通信。最近,服务器的响应一直很慢。原因之一是请求(LocationUpdate)被所有在15分钟间隔内随机访问应用程序的用户所命中。我认为这是减慢服务器速度的原因。另一个原因是我们也有很多用户。我在想怎么平衡这个。

  1. 我不确定它的Apache是否无法处理这些web请求。
  2. 或者是Tomcat,它无法处理它们。

所以不知道我该怎么处理。要确认的配置设置。我确实在网上搜索过,但不知道该如何解决这个问题。我应该增加Tomcat堆的大小吗?

EN

回答 1

Server Fault用户

发布于 2015-01-15 11:18:17

首先,您需要重新考虑,您的应用程序是否真的需要“打电话回家”每15分钟!这使得burdon不仅在您的服务器上,而且在移动网络上,在人们的电话和他们的数据账单上。特别是,如果这是一个位置更新,应用程序可能被编程不发送该位置的更新,如果GPS坐标的变化从上次转移更新是很小的。

其次,你必须调试,是什么驱动了你的web服务器上的负载。使用top显示加载详细信息。特别令人感兴趣的是这条线:

代码语言:javascript
复制
Cpu(s):  3.0%us,  6.0%sy,  1.6%ni, 85.9%id,  0.4%wa,  0.0%hi,  3.0%si,  0.0%st

这是来自一个负载较轻的服务器,即86%的空闲--所以在我的示例中一切都很好。在您的示例中,它可能如下所示:

代码语言:javascript
复制
Cpu(s):  3.0%us,  6.0%sy,  1.6%ni, 4.9%id,  81.4%wa,  0.0%hi,  3.0%si,  0.0%st

外挂的“等待”意味着您的作业正在等待磁盘完成读取或写入数据。如果您有这个问题,那么尝试减少不必要的写入磁盘(谷歌为noatime了解更多),并尝试降低您的数据库的写入安全级别,在那里这样做是安全的。例如,如果在发生电源故障时没有将位置更新正确写入磁盘,则对您的服务的影响可能很小,就像当时一样,在修复失败的组件后恢复电源,这些位置无论如何都会过时。另一方面,如果新用户注册了,您希望将这些对主帐户数据的写入保持为同步,这样就不会因为电源或服务器故障而丢失帐户。

即使在这些更改之后,等待时间也很长,那么在考虑负载平衡之前,考虑一下更快的磁盘:带有两个甚至三个磁盘的RAID 1或SSD。

如果您的负载线如下所示:

代码语言:javascript
复制
Cpu(s):  43.0%us,  42.0%sy,  1.6%ni, 4.9%id,  5.4%wa,  0.0%hi,  3.0%si,  0.0%st

由于几乎所有的CPU时间都花在userland (us)和系统模式(us)上,那么CPU就会超载。检查顶部输出中标题下面的行,找出哪些服务(如apache2、tomcat、MySQL)具有较高的cpu负载。然后优化您的web应用程序,以减少cpu的使用。如果这没有帮助,那么向服务器添加更多的cpu核心。

最后,但并非最不重要的是,使用free检查您的内存。如果使用了很大比例的内存,或者交换超过几千字节,则添加更多的内存。

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

https://serverfault.com/questions/659686

复制
相关文章

相似问题

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