httpd, php, mariadb分离式的部署在三台主机上测试性能

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

CentOS7, amp + xcache,编译安装,php-fpm;

    a) 分别深度:httpd, php, mariadb分别部署在一个单独的主机上,以及都在同一主机;

    b) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress;

    c) 为phpMyAdmim提供https服务;

对以上所有部署做压力测试,并对比测试结果,写出测试报告;

 

环境:

此处用三台主机分别分离提供不同服务:

172.16.1.4------->提供httpd服务

172.16.1.3------->提供mariadb-server服务

172.16.1.2------->提供php-fpm  php-mysql  xcache服务

 

一、172.16.1.4服务器部署httpd服务:


1、安装httpd服务程序

[root@zj04~]# yum -y install httpd

[root@zj04~]# vim /etc/httpd/conf/httpd.conf

 

2、建立虚拟主机

wKiom1m8rQjji2roAAB7aG9Eb3s725.png

3、建立网页及相关路径

[root@zj04~]# mkdir -p /var/www/html/www1

[root@zj04~]# mkdir -p /var/www/html/www2 

[root@zj04~]# echo "www1.link.com" > /var/www/html/www1/index.html 

[root@zj04~]# echo "www2.link.com" > /var/www/html/www2/index.html

4、启动下服务我们测试下虚拟主机是否正常

[root@zj04~]# curl www1.link.com

www1.link.com

[root@zj04~]# curl www2.link.com

www2.link.com

 

二、在172.16.1.2服务器上部署安装php-fpm


1、安装php-fpm php-mysql php-mbstring程序

[root@zj02~]# yum -y install php-fpm php-mysql php-mbstring

 

2、编辑/etc/php-fpm.d/www.conf

[root@zj02~]# vim /etc/php-fpm.d/www.conf

修改以下内容:

listen= 172.16.1.2:9000 #设置php服务器监听地址即监听本地能够与外部通信的地址

listen.allowed_clients= 172.16.1.4 #监听具有httpd服务的IP地址

 

3、建立以下文件并且启动php-fpm服务,查看下是否已经监听

[root@zj02~]# mkdir /var/lib/php/session

[root@zj02~]# chown apache.apache /var/lib/php/session/

[root@zj02~]# ls -ld /var/lib/php/session/

drwxrwx---.3 apache apache 21 9月  10 20:31 /var/lib/php/session/

 

[root@zj02~]# systemctl start php-fpm.service

[root@zj02~]# ss -tnl

State   Recv-Q   Send-Q   Local Address:Port       Peer Address:Port             

LISTEN  0        128         172.16.1.2:9000       *:* 

以上已经显示监听在php地址

 

4、在php服务器上建立与http服务器上网页DocumentRoot路径,并且编写php测试也,看看是否能够与http连接

[root@zj02~]# mkdir -p /var/www/html/www{1,2}

 

[root@zj02~]# vim /var/www/html/www1/index.php #虚拟主机1的php和httpd连接测试

Thisis ge de vhost1

<?php

phpinfo();

?>

 

[root@zj02~]# vim /var/www/html/www1/index.php #虚拟主机2的php和httpd连接测试

Thisis ge de vhost2

<?php

phpinfo();

?>

 

5、加载服务访问站点测试php和httpd连接是否正常


wKiom1m8rTjiMj5IAAFqvKdnNA4095.png

wKioL1m8rQviRsqJAAFWlNYpnEQ032.png


正常连接,所有我的PHP和httpd服务器连接成功。

 

三、在172.16.1.3服务器上部署mariadb服务


1.安装数据库,开启服务

[root@zj03~]# yum -y install mariadb-server

[root@zj03~]# systemctl start mariadb.service

2、创建数据库和授权等相关操作

MariaDB[(none)]> create database wpsdb; #创建WordPress所用数据库

MariaDB[(none)]> grant all on wpsdb.* TO 'wpuser'@'172.16.%.%'IDENTIFIED BY'123456';  #授权WordPress用户

 

MariaDB[(none)]> create database pma; #授权phpmyadmin所用数据库

MariaDB[(none)]> grant all on pma.* TO 'pmauser'@'172.16.%.%'IDENTIFIED BY'123456'; #授权phpmyadmin的用户

 

3、在php服务器上建立php测试页,测试php是否可以正常连接数据

[root@zj02~]# vim /var/www/html/www1/index.php

Thisis ge de vhost1

<?php

        $conn = mysql_connect('172.16.1.3','wpuser','123456');

            if ($conn)

                  echo "ok";

            else

                  echo "NO";

phpinfo();

?>

 

[root@zj02~]# vim /var/www/html/www2/index.php

Thisis ge de vhost2

<?php

        $conn =mysql_connect('172.16.1.3','wpuser','123456');

            if ($conn)

                  echo "ok";

            else

                  echo "NO";

phpinfo();

?>

 

4、测试

wKioL1m8rTuix7z7AAFxYqPC2M8173.png

wKiom1m8rWmzub9PAAFukDb-9M0830.png


显示OK,所以mariadb数据可以同php连接了,而且到现在分离式的LAMP平台就构建完成了!

 

四、部署下WordPress和phpMyadmin


部署WordPress:

 

1、将下载好的WordPress压缩包传到php主机上,解压缩,配置连接用户和密码,数据库地址

[root@zj02~]# unzip wordpress-3.9-zh_CN.zip

[root@zj02~]# mv wordpress /var/www/html/www1/

[root@zj02~]# cd /var/www/html/www1/wordpress/

[root@zj02wordpress]# mv wp-config-sample.php wp-config.php

[root@zj02wordpress]# vim wp-config.php

修改如下:

define('DB_NAME','wpsdb');

/**MySQL数据库用户名 */

define('DB_USER','wpuser');

/**MySQL数据库密码 */

define('DB_PASSWORD','123456');

/**MySQL主机 */

define('DB_HOST','172.16.1.3');

 

2、把WordPress这个目录个传到http服务器主页访问的路径下

[root@zj02www1]# scp -r wordpress/ root@172.16.1.4:/var/www/html/www1/

这里需要根据提示输入“yes”和root密码

 

部署phpMyadmin:


 1、将下载好的phpMyadmin压缩包传到php主机上,解压缩,配置连接用户和密码,数据库地址

[root@zj02~]# tar -zxvf phpMyAdmin-4.0.10.20.tar.gz

[root@zj02~]# mv phpMyAdmin-4.0.10.20 /var/www/html/www2/

[root@zj02www2]# mv phpMyAdmin-4.0.10.20/ phpmyadmin

2、进入phpmyadmin目录下的libraries目录,编辑这个文件:

[root@zj02libraries]# vim config.default.php

 

$cfg['blowfish_secret']= 'V40VdxxM0rPrx8k2KYE'; #添加随机字符

$cfg['Servers'][$i]['host']= '172.16.1.3'; #数据库服务器地址

$cfg['Servers'][$i]['user']= 'pmauser';

$cfg['Servers'][$i]['password']= '123456';

3、将配置好了的phpmyadmin目录传一份给httpd服务器虚拟主机对应的访问路径下

[root@zj02www2]# scp -r phpmyadmin/ root@172.16.1.4:/var/www/html/www2/

 

测试:

wKiom1m8ramzdBjMAAHISR0WBxo025.png

wKioL1m8rXzia553AAD5WT51dQA133.png

成功!下面进行压力测试:

[root@bogon~]# ab -c 1000 -n 10000 http://www1.link.com/wordpress

Thisis ApacheBench, Version 2.3 <$Revision:1430300 $>

Copyright1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensedto The Apache Software Foundation, http://www.apache.org/

 

Benchmarkingwp.linuxidc.com (be patient)

Completed1000 requests

Completed2000 requests

Completed3000 requests

Completed4000 requests

Completed5000 requests

Completed6000 requests

Completed7000 requests

Completed8000 requests

Completed9000 requests

Completed10000 requests

Finished10000 requests

 

ServerSoftware:        Apache/2.4.6

ServerHostname:        www1.link.com

ServerPort:            80

 

DocumentPath:          /wordpress

DocumentLength:        239 bytes

 

ConcurrencyLevel:      1000

Timetaken for tests:  3.081 seconds

Completerequests:      10000

Failedrequests:        0

Writeerrors:          0

Non-2xxresponses:      10002

Totaltransferred:      4690938 bytes

HTMLtransferred:      2390478 bytes

Requestsper second:    3245.20 [#/sec] (mean)

Timeper request:      308.147 [ms] (mean)

Timeper request:      0.308 [ms] (mean,across all concurrent requests)

Transferrate:          1486.63 [Kbytes/sec] received

从这段测试可以看出,没用加速比我们之前的测试的都要快!

 

五、在php服务器172.16.1.2上安装xcache进行缓存加速

1、安装php-xache

[root@zj02~]# yum -y install php-xcache 

[root@zj02~]# systemctl restart php-fpm.service

 

2、编辑配置文件,把缓存大小调大测试效果

[root@pxe132~]# vim /etc/php.d/xcache.ini

xcache.size = 300M

 

3、压力测试:

[root@bogon~]# ab -c 1000 -n 10000 http://www1.link.com/wordpress

Thisis ApacheBench, Version 2.3 <$Revision:1430300 $>

Copyright1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensedto The Apache Software Foundation, http://www.apache.org/

 

Benchmarkingwp.linuxidc.com (be patient)

Completed1000 requests

Completed2000 requests

Completed3000 requests

Completed4000 requests

Completed5000 requests

Completed6000 requests

Completed7000 requests

Completed8000 requests

Completed9000 requests

Completed10000 requests

Finished10000 requests

 

ServerSoftware:        Apache/2.4.6

ServerHostname:        www1.link.com

ServerPort:            80

 

DocumentPath:          /wordpress

DocumentLength:        239 bytes

 

ConcurrencyLevel:      1000

Timetaken for tests:  3.076 seconds

Completerequests:      10000

Failedrequests:        0

Writeerrors:          0

Non-2xxresponses:      10012

Totaltransferred:      4695628 bytes

HTMLtransferred:      2392868 bytes

Requestsper second:    3250.70 [#/sec] (mean)

Timeper request:      307.626 [ms] (mean)

Timeper request:      0.308 [ms] (mean,across all concurrent requests)

Transferrate:          1490.63 [Kbytes/sec]received

 

ConnectionTimes (ms)

              min  mean[+/-sd] median  max

Connect:        0 46 208.7      2    3011

Processing:    0  69191.8    31    1575

Waiting:        0 68 191.7    31    1574

Total:        21 115 337.5    34    3040

 

通过测试对比,可以看到apache请求该页面的吞吐率,发现启用xcache后Requests per second有所提高,所以性能更好!



本文转自 Runs_ 51CTO博客,原文链接:http://blog.51cto.com/12667170/1965820,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
33 4
|
2月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
122 2
|
14天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
61 13
|
2月前
|
监控 测试技术 PHP
性能和压力测试
【10月更文挑战第10天】性能和压力测试
120 60
|
21天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
49 1
|
27天前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
34 4
|
27天前
|
监控 JavaScript 前端开发
如何在实际应用中测试和比较React和Vue的性能?
总之,通过多种方法的综合运用,可以相对客观地比较 React 和 Vue 在实际应用中的性能表现,为项目的选择和优化提供有力的依据。
33 1
|
1月前
|
存储 缓存 搜索推荐
优化PHP数组性能
优化PHP数组性能
42 8
|
1月前
|
存储 NoSQL PHP
PHP与Redis结合使用,提升数据存储性能
随着互联网应用的发展,PHP与Redis的结合成为提升数据存储性能的重要手段。PHP作为流行的服务器端语言,常用于网站开发;Redis作为高性能内存数据库,以其快速读写能力,有效优化数据访问速度,减轻数据库压力。两者结合通过缓存机制显著提升应用响应速度,支持高并发场景下的稳定性和可扩展性。
下一篇
DataWorks