摘要:進程數的配置會奏效會自動增加數但是性能提升效果并不明顯然而的并沒奏效,仍然只有一個通過手動增加配置發現有所提升但效果很不明顯。于是我更改了的配置改為再次結果能達到左右差不多翻倍了結論性能問題并不那么容易解決需要耐心的排查原因
0.準備工作一直知道nginx本身能進行負載均衡,但沒有測試過,今天實驗了下,以下是筆記記錄
vagrant+centos6.7 vbox
1.搭建和配置規劃3臺web服務器,做負載均衡,由于之前已經有一臺虛擬機,因此我現在增加2臺.
依次進行以下操作
1.E盤建立一個servers目錄初始化vagrant init
2.配置文件vagrantfile,增加了2臺虛擬機分別在192.168.33.11,192.168.33.12與之前的192.168.33.10組成3臺集群
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臺服務器安裝php和一些必要的軟件,為了提高效率,隨意寫了個腳本2臺機器上運行
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
本實驗中web_1和web_2 2臺服務器其實只用到php-fpm,之前的一臺host_1(192.168.33.10)會用到nginx和php-fpm
4.配置web_1和web_2的php-fpm 的www.conf配置文件
主要涉及到的配置是listen 和 listen.allowed_clients
前者表示php-fpm 監聽的ip 和端口,由于要讓host_1的nginx反向代理到,所以應該使用局域網ip,而不是默認的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 進行負載均衡
#nginx.conf #配置均衡日志 可以看到具體代理到了哪臺機器的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 { #輪叫調度(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都會找本機的root目錄即之前配置的/home/vison/www/demaya/webroot,所以需在192.168.33.10-12 3臺機器上都有相同的代碼. 為了方便測試,我這里故意更改了3臺機器的index.php文件代碼.host_1 輸出hello,host_1,web_1輸出hello,web_1依次類推。
2.測試瀏覽器訪問test.dev
結果:
第一次 hello,host_1
第二次 hello,web_1
第三次 hello,web_2
...依次
說明:nginx已經按照輪流模式代理到了host_1 web_1 web_2,查看host_1的access.log也同樣會發現
3.性能測試多臺服務器代理就一定會提升性能嗎?
筆者用ab在負載均衡之前和之后都測試過,答案卻是否定的
在多服務器之前,單核cpu 1G內存 nginx和php-fpm 都按默認配置RPS能達到900+,然而增加了2臺同樣配置的虛擬機代理卻只能達到800+了。
php-fpm 進程數auto的配置會奏效,會自動增加php-fpm數.但是性能提升效果并不明顯,然而nginx 的auto 并沒奏效,仍然只有一個.通過手動增加nginx配置,發現rps有所提升,但效果很不明顯。
運用vmstat查看分析性能瓶頸時,感覺上是CPU上到了瓶頸,vmstat顯示r挺多說明CPU處理不過來。于是我更改了host_1的cpus 配置改為2.再次ab,結果RPS能達到1500左右,差不多翻倍了!
4.結論性能問題并不那么容易解決,需要耐心的排查原因.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23309.html
摘要:進程數的配置會奏效會自動增加數但是性能提升效果并不明顯然而的并沒奏效,仍然只有一個通過手動增加配置發現有所提升但效果很不明顯。于是我更改了的配置改為再次結果能達到左右差不多翻倍了結論性能問題并不那么容易解決需要耐心的排查原因 一直知道nginx本身能進行負載均衡,但沒有測試過,今天實驗了下,以下是筆記記錄 showImg(https://segmentfault.com/img/rem...
摘要:本文介紹三者之間的關系,以及反向代理和負載均衡的配置。先使用負載均衡模塊找到一臺主機,再使用模塊實現與這臺主機的交互。負載均衡配置該例定義了一個的負載均衡配置,通過反向代理指令應用這個配置。 本文介紹 PHP-FPM,Nginx,FastCGI 三者之間的關系,以及 Nginx 反向代理和負載均衡的配置。 PHP-FPM,Nginx,FastCGI 之間的關系 FastCGI 是一個協...
摘要:是一款輕量級的服務器反向代理服務器及電子郵件代理服務器,并在一個協議下發行。是以反向代理的方式進行負載均衡的。 Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特點是占有內存...
閱讀 987·2021-11-24 10:30
閱讀 2316·2021-10-08 10:04
閱讀 3949·2021-09-30 09:47
閱讀 1433·2021-09-29 09:45
閱讀 1435·2021-09-24 10:33
閱讀 6234·2021-09-22 15:57
閱讀 2351·2021-09-22 15:50
閱讀 4079·2021-08-30 09:45