首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何优化小型linux服务器?

如何优化小型linux服务器?
EN

Server Fault用户
提问于 2011-01-21 16:09:01
回答 4查看 813关注 0票数 1

我有一个小Ubuntu服务器,有512 of的ram和几个php/mysql网站(~20)运行在上面,已经运行了两年了,没有一个问题。但我认为优化的时刻刚刚到来。

托管在这台服务器上的网站流量很低,但我看到了一些CPU问题,因为它们开始得到更多的访问。

我要做的第一件事就是找出问题,所以我一直在尝试使用几个命令行工具,如top htop apachetop等,以及用于监视MySQl.With的工作台--这些工具很难确切地知道我在做什么。例如,我创建了一个运行在后台的PHP,每10秒在数据库中存储CPU usage.If -- CPU大于60%,它存储apachetop的输出。这并不特别有用,因为许多记录都是选项* HTTP/1.0。而且,它看起来是最后一个请求的列表,而不是当前请求的列表。

秒,当我试图监视使用htop的情况时,我总是看到~15条记录如下:

代码语言:javascript
复制
6905 mysql     20   0  462M  110M  5220 S  0.0 21.6  5:29.79 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock

另一个15岁的例子是:

代码语言:javascript
复制
23382 www-data  20   0  259M 27384  4820 S  1.3  5.2  0:01.00 /usr/sbin/apache2 -k start

这是一张截图:

我不确定是否应该一直打开大量的进程,或者这是我可以优化的东西。我现在可以升级这个服务器了,我只想在做之前尽可能地优化它。

另外,我打开日志进行慢速查询,只有当服务器CPU超过90%时才会执行所有查询。这只是证实了我使用的php/mysql (自定义)并不太重。我可以说,该网站有更多的流量,有300个独特的访问者和1200页的浏览量一天。所有其他网站的流量都要低得多。

1)我正在寻找关于如何有效地监视此服务器的建议。

2)我需要关于MySQl和PHP的建议。例如,我应该给它们分配多少内存,或者应该打开/关闭哪些选项。

谢谢!

下面是指向htop:http://www.flickr.com/photos/58586868@N02/5375745794/屏幕截图的链接

EN

回答 4

Server Fault用户

发布于 2011-01-28 12:20:20

正如人们可能从我以前的一些帖子中猜到的那样,我到处都在管理收藏品。从sourcefore‘/etc/init.d/收藏品开始’下载/安装rpm,您就完成了。它将每10秒收集几百个性能指标,占cpu的<0.1%。它还将每分钟拍摄一次处理数据的快照,因为这是一个更重的操作。然后,您可以以多种格式回放收集到的数据,甚至可以使用基于web的工具colplot进行绘图,该工具是收藏品-utils包的一部分。

看一看系统正在做的事情的简短和/或不完整的图片不会让你达到目的。您需要一张细粒度数据的长期图片,您可以深入了解这些数据,看看到底发生了什么。

-mark

票数 1
EN

Server Fault用户

发布于 2011-01-21 16:43:27

如何调优Linux服务器,运行Apache、PHP和MySQL,至少会填满4本大书--而且也没有神奇的解决方案。

然而,在我的经验中,LAMP堆栈上的大多数性能问题都是写得不好的数据库查询。您已经放弃了这一点,因为这可能是对性能问题的贡献--我建议您回过头来看一看。

一旦整理好数据库,要检查的其他事情是压缩所有html、javascript和css (mod_gzip)和(输出缓冲)。一定要确保您已经运行了一个操作码缓存(如APC)。并确保您正在使用合理的缓存信息为所有静态内容提供服务。

系统度量很好地告诉您系统的性能是如何受到限制的--而不是实际的性能。开始在apache日志中记录%D,并对结果进行分析,以了解系统的实际执行情况。优先排序具有最高总数的URL以进行优化。

您从系统中提供的详细信息是非常相关的--假设您的webserver设置正确,它们表明CPU的使用主要取决于mysql --但是如果webserver配置是错误的,那么情况可能正好相反。

如果您提供了apache配置(减去注释),这将是有帮助的。

我打开日志进行慢速查询,只有当服务器CPU超过90%时才会执行所有查询

听起来你设定的门槛太高了。尝试将阈值设置为0,然后编写一个解析器,将参数从查询中去掉,以确定哪些查询确实比较慢。或者只是找到一个已经写好的

票数 0
EN

Server Fault用户

发布于 2011-01-21 16:54:28

很可能,随着时间的推移,您的表正在增长,并且正在失去mysql缓冲区。尝试找出您的表是否属于MyISAM或InnoDB类型,并相应地调整缓冲区设置。

如果你不使用InnoDB,就关掉它。InnoDB使用innodb_buffer_pool_size设置缓冲区,MyISAM使用key_buffer。您可以在mysqladmin变量中找到这两个值。

随着表的增长,以前快速的查询工作得越来越慢。

知道电脑是干什么的吗?这很难。尝试找到系统繁忙的确切时间,并检查系统和用户crontab和webserver访问日志。

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

https://serverfault.com/questions/225204

复制
相关文章

相似问题

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