小型网站架构降低Apache与MySQL内存占用比率

看到此文,是否觉得体内洪荒之力爆发,饥渴难耐想吐槽、情不自禁想捐赠
本文为原创文章,尊重辛勤劳动,可以免费摘要、推荐或聚合,亦可完整转载,但完整转载需要标明原出处,违者必究。

支付宝微  信

前言

这是一篇极其没有营养的文章,那么请问“什么还要写?”,正所谓“不积跬步无以至千里,不积小流无以成江海”,难得学习与总结。而且,并不一定每篇文章都需要长篇大论、“看似高深”,最后网友看后毫无感觉。

这篇文章以我的阿里云服务器为例(你眼前的博客正是搭在这个服务器上),阐述下小型网站(Linux+Apache+MySQL+PHP)对于内存利用率提升的配置方法的一个点。

正文

我的服务器是阿里云的,在一年前由于数据库(MySQL)频繁内存不足宕机就“潇洒”地升级了配置到2G内存。所以,目前机器的配置如下:

CPU: 1核
内存: 2048 MB
操作系统: CentOS 6.5 32位
公网IP: 115.28.36.19
带宽计费方式: 按固定带宽
当前使用带宽: 1Mbps

同时,正常使用情况下的内存使用情况如下:

linux 内存mysql与apache占用

linux 内存mysql与apache占用

图中显示MySQL占用440m,Apache占用44m。当然,这是MySQL服务和Apache服务刚刚重启后的情况。实际的内存占用会比这大,因为随着业务的进行,会进行Cache的累积,最后导致整体的使用内存增大。

下面分别调整MySQL和Apache的配置文件。

MySQL

修改/etc/my.cnf 文件,增加如下配置内容:

performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256

内容使用情况如下:

linux下mysql内存使用情况

linux下mysql内存使用情况

如图所示,在修改MySQL配置项后内存使用已经大幅度下降到71m了。所以,默认的MySQL配置真是不适合我们这种小型网站。同时,你会注意到运行了一段时间后,Apache内存占比上升,使用量达到406m。真是可怕。

下面我们修改Apache的配置文件,httpd.conf:

# event MPM
# StartServers: initial number of server processes to start
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestWorkers: maximum number of worker threads
# MaxConnectionsPerChild: maximum number of connections a server process serves
#                         before terminating
<IfModule mpm_event_module>
    StartServers             3
    MinSpareThreads          5
    MaxSpareThreads         50
    ThreadsPerChild         10
    MaxRequestWorkers       50
    MaxConnectionsPerChild  50
</IfModule>

由于我的Apache加载的是event模式,所以我这里修改了相应的event模块配置。如果你想知道你自己加载的是哪种模式,每一个配置项是什么意思(如果不想看英文的话),那么你可以参阅下这篇文章:apache2.4.x三种MPM介绍

修改后配置重启就OK了,这里我就不再截取我重启后的内存使用情况图片了。因为,没有意义。为什么?你读了上面文章的内容,了解了配置项的意义就可以了。

总结

没有总结


文章来源:胡旭博客 => 小型网站架构降低Apache与MySQL内存占用比率

转载请注明出处,违者必究!


这是一篇原创文章,如果您觉得有价值,可以通过捐赠来支持我的创作~
捐赠者会展示在博客的某个页面,钱将会用在有价值的地方,思考中...


分类: Linux, MySQL, 技术 | 标签: , , , , , , | 评论 | Permalink

发表评论

电子邮件地址不会被公开。