摘要:進(jìn)程數(shù)的配置會(huì)奏效會(huì)自動(dòng)增加數(shù)但是性能提升效果并不明顯然而的并沒(méi)奏效,仍然只有一個(gè)通過(guò)手動(dòng)增加配置發(fā)現(xiàn)有所提升但效果很不明顯。于是我更改了的配置改為再次結(jié)果能達(dá)到左右差不多翻倍了結(jié)論性能問(wèn)題并不那么容易解決需要耐心的排查原因
0.準(zhǔn)備工作一直知道nginx本身能進(jìn)行負(fù)載均衡,但沒(méi)有測(cè)試過(guò),今天實(shí)驗(yàn)了下,以下是筆記記錄
vagrant+centos6.7 vbox
1.搭建和配置規(guī)劃3臺(tái)web服務(wù)器,做負(fù)載均衡,由于之前已經(jīng)有一臺(tái)虛擬機(jī),因此我現(xiàn)在增加2臺(tái).
依次進(jìn)行以下操作
1.E盤(pán)建立一個(gè)servers目錄初始化vagrant init
2.配置文件vagrantfile,增加了2臺(tái)虛擬機(jī)分別在192.168.33.11,192.168.33.12與之前的192.168.33.10組成3臺(tái)集群
Vagrant.configure(2) do |config| config.vm.define "web_1" do |web_1| web_1.vm.box = "centos67" web_1.vm.network "private_network", ip: "192.168.33.11" web_1.vm.provider "virtualbox" do |v| v.memory = "1024" end end config.vm.define "web_2" do |web_2| web_2.vm.box = "centos67" web_2.vm.network "private_network", ip: "192.168.33.12" web_2.vm.provider "virtualbox" do |v| v.memory = "1024" end end end
3.為新增的2臺(tái)服務(wù)器安裝php和一些必要的軟件,為了提高效率,隨意寫(xiě)了個(gè)腳本2臺(tái)機(jī)器上運(yùn)行
yum install -y gcc vim su -c "rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm" rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm yum install -y nginx yum install -y php71w-* --skip-broken groupadd dev useradd -s /bin/bash -g dev vison
本實(shí)驗(yàn)中web_1和web_2 2臺(tái)服務(wù)器其實(shí)只用到php-fpm,之前的一臺(tái)host_1(192.168.33.10)會(huì)用到nginx和php-fpm
4.配置web_1和web_2的php-fpm 的www.conf配置文件
主要涉及到的配置是listen 和 listen.allowed_clients
前者表示php-fpm 監(jiān)聽(tīng)的ip 和端口,由于要讓host_1的nginx反向代理到,所以應(yīng)該使用局域網(wǎng)ip,而不是默認(rèn)的127.0.0.1.
#192.168.33.11的www.conf listen = 192.168.33.11:9000 listen.allowed_clients = 192.168.33.10 #192.168.33.11的www.conf listen = 192.168.33.12:9000 listen.allowed_clients = 192.168.33.10
配置好后注意重載配置 service php-fpm reload
5.配置host_1 的nginx 進(jìn)行負(fù)載均衡
#nginx.conf #配置均衡日志 可以看到具體代理到了哪臺(tái)機(jī)器的fpm log_format upstreamlog "[$time_local] $remote_addr - $remote_user - $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time"; access_log /var/log/nginx/$host.access.log upstreamlog; upstream php-fpm-backend { #輪叫調(diào)度(Round-RobinScheduling)模式 server 127.0.0.1:9000; server 192.168.33.11:9000; server 192.168.33.12:9000; } #test-dev.conf vhost 配置 server_name test.dev; root /home/vison/www/demaya/webroot; location ~ .php$ { fastcgi_pass php-fpm-backend; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
6.同步php文件
由于不同的fpm都會(huì)找本機(jī)的root目錄即之前配置的/home/vison/www/demaya/webroot,所以需在192.168.33.10-12 3臺(tái)機(jī)器上都有相同的代碼. 為了方便測(cè)試,我這里故意更改了3臺(tái)機(jī)器的index.php文件代碼.host_1 輸出hello,host_1,web_1輸出hello,web_1依次類推。
2.測(cè)試瀏覽器訪問(wèn)test.dev
結(jié)果:
第一次 hello,host_1
第二次 hello,web_1
第三次 hello,web_2
...依次
說(shuō)明:nginx已經(jīng)按照輪流模式代理到了host_1 web_1 web_2,查看host_1的access.log也同樣會(huì)發(fā)現(xiàn)
3.性能測(cè)試多臺(tái)服務(wù)器代理就一定會(huì)提升性能嗎?
筆者用ab在負(fù)載均衡之前和之后都測(cè)試過(guò),答案卻是否定的
在多服務(wù)器之前,單核cpu 1G內(nèi)存 nginx和php-fpm 都按默認(rèn)配置RPS能達(dá)到900+,然而增加了2臺(tái)同樣配置的虛擬機(jī)代理卻只能達(dá)到800+了。
php-fpm 進(jìn)程數(shù)auto的配置會(huì)奏效,會(huì)自動(dòng)增加php-fpm數(shù).但是性能提升效果并不明顯,然而nginx 的auto 并沒(méi)奏效,仍然只有一個(gè).通過(guò)手動(dòng)增加nginx配置,發(fā)現(xiàn)rps有所提升,但效果很不明顯。
運(yùn)用vmstat查看分析性能瓶頸時(shí),感覺(jué)上是CPU上到了瓶頸,vmstat顯示r挺多說(shuō)明CPU處理不過(guò)來(lái)。于是我更改了host_1的cpus 配置改為2.再次ab,結(jié)果RPS能達(dá)到1500左右,差不多翻倍了!
4.結(jié)論性能問(wèn)題并不那么容易解決,需要耐心的排查原因.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/23309.html
摘要:進(jìn)程數(shù)的配置會(huì)奏效會(huì)自動(dòng)增加數(shù)但是性能提升效果并不明顯然而的并沒(méi)奏效,仍然只有一個(gè)通過(guò)手動(dòng)增加配置發(fā)現(xiàn)有所提升但效果很不明顯。于是我更改了的配置改為再次結(jié)果能達(dá)到左右差不多翻倍了結(jié)論性能問(wèn)題并不那么容易解決需要耐心的排查原因 一直知道nginx本身能進(jìn)行負(fù)載均衡,但沒(méi)有測(cè)試過(guò),今天實(shí)驗(yàn)了下,以下是筆記記錄 showImg(https://segmentfault.com/img/rem...
摘要:本文介紹三者之間的關(guān)系,以及反向代理和負(fù)載均衡的配置。先使用負(fù)載均衡模塊找到一臺(tái)主機(jī),再使用模塊實(shí)現(xiàn)與這臺(tái)主機(jī)的交互。負(fù)載均衡配置該例定義了一個(gè)的負(fù)載均衡配置,通過(guò)反向代理指令應(yīng)用這個(gè)配置。 本文介紹 PHP-FPM,Nginx,FastCGI 三者之間的關(guān)系,以及 Nginx 反向代理和負(fù)載均衡的配置。 PHP-FPM,Nginx,FastCGI 之間的關(guān)系 FastCGI 是一個(gè)協(xié)...
摘要:是一款輕量級(jí)的服務(wù)器反向代理服務(wù)器及電子郵件代理服務(wù)器,并在一個(gè)協(xié)議下發(fā)行。是以反向代理的方式進(jìn)行負(fù)載均衡的。 Nginx是一款輕量級(jí)的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,并在一個(gè)BSD-like 協(xié)議下發(fā)行。由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開(kāi)發(fā),供俄國(guó)大型的入口網(wǎng)站及搜索引擎Rambler(俄文:Рамблер)使用。其特點(diǎn)是占有內(nèi)存...
閱讀 1002·2021-11-24 10:30
閱讀 2327·2021-10-08 10:04
閱讀 3968·2021-09-30 09:47
閱讀 1452·2021-09-29 09:45
閱讀 1445·2021-09-24 10:33
閱讀 6271·2021-09-22 15:57
閱讀 2358·2021-09-22 15:50
閱讀 4089·2021-08-30 09:45