天天看點

web及性能調優

                                                    nginx 的性能調優

1 修改CPU的核心數對應的Nginx work程序 這個一般是你CPU核心數的兩倍,方正是倍數,具體要幾倍可看具體硬體配置

2 修改檔案描述符  65536 ulimit -n 永久生效可改/etc/sysctl.conf

3 修改Linux核心的排程算法    epoll

4 修改連接配接數  在理論上來講是工作程序數* 連接配接數 但是,Nginx的理論并發值是65536,是以 。。。。。 你懂得

5 在多少時間之内要達到多少的并發量就緩存,否則。。。。。。  你懂得

6 (5)的這條規則的前提下,超過并發數量的次數,就緩存

7 定期的對(5)做檢查

8 設定分頁的buffer 

9 設定存活時間  這是指cline端打開browser頁面沒有關閉就自動斷開的時間

Nginx的功能還有哪些  

Nginx可以做web 端口轉發  還有就是反向代理  

還能做方向代理的軟體有哪些呢

Nginx 算一個 squid(沒有Nginx那麼好,它既可以做正想代理也可以做反響代理,隻是反向代理的功能沒有其他的那麼強大) 算一個  varnish(專門用來做反響代理的) 也算一個

什麼叫反響代理,什麼叫正向代理?

你可以這樣認為就是 client通過internet去通路伺服器的内容,而此時的服務是在内部網絡的,沒有跟外部網絡有連接配接,是以想要通路到伺服器的内容就必須要通過代理軟體去實作,那怎麼實作代理服務端得指一下誰是他的後端伺服器吧,然後後端伺服器也要知道誰是他的代理伺服器吧,都是這樣子配置的。

正向代理 你就認為你不能上網,代理幫你去上網,然後在把資料傳回來給你

反向代理 也是一樣隻是,如果他沒有資料他就會去找後端伺服器找資料然後再給用戶端,如果有資料就直接傳回

什麼叫CDN呢?CDN即内容分發網絡。為什麼說CDN可以加速并且可以抵擋DDOS的一些攻擊呢?那就是它的基本原理還是反向代理。反向代理的作用有兩種,一種就說伺服器内容的替身說白了就是冒充伺服器給别人轉發的内容的,另一種就是可以起到安全防護的作用。怎麼說它就可以起到安全防護的作用呢?那是因為他充當了伺服器的替身,如果你攻擊伺服器,那你真正攻擊的人就是代理,是以是不會公道伺服器的,是以這就起到了安全防護的作用。 

反向代理的作用 保護網站的安全

反向代理的模型有兩種模型,它可以作為内容伺服器的替身,也可以作為内容伺服器叢集的負載均衡器

Nginx做端口轉發相比于其他的軟體有哪些優勢呢

Nginx可以支援較全的正規表達式 而haproxy也是可以,隻是稍微比Nginx稍弱了一些,還有一個是lvs

各個軟體的異同點:

其實這些端口轉發軟體也可以稱之為LB軟體或是工具都行的,因為他們存在的意義就是為了解決單點故障而存在的。

Nginx與haproxy是工作在七層中的,haproxy也可以在4層中工作,而LVS隻工作在四層,LVS本身就是用來做端口轉發的。

haproxy彌補了Nginx的session跟cookie功能,而且對工作在tcp協定的應用軟體都支援,Nginx呢隻是支援email跟http兩個,是以說過濾URL的話用Nginx較好,但是要支援較全的tcp應用軟體的話還是用haproxy,因為haproxy的功能也不弱于Nginx  在端口轉發發面跟Nginx是不相上下,甚至也可以說優于Nginx ,隻是Nginx這款軟體功能有些太過于強大。到現在好像LVS的身影出現出現比較少啊,那好現在就來說說LVS給我們帶來什麼讓人喜悅功能。LVS 跟fastDFS都是我們國人自己開發的,并且現在的好多企業已經在用,前者的名字叫做章文松(博士)後者叫做餘慶(CA)。

抗負載能力強,因為lvs工作方式的隻分發請求啥也不管,如果你的某個節點出現故障了,那麼他還是回去按他的排程算法把請求發給有故障的那一台的,雖然做負載均衡器裡面是最強的,但是不支援正規表達式和動靜分離。是以keepalive幫LVS做好了準備了,keepalive是一個用來做高可用的軟體,同時帶了健康檢查機制下面就附上Nginx haproxy LVS三個軟體的優缺點

Nginx  工作在七層,但是隻支援email和http  正規表達式最強,沒有cookie和session會話功能,配置型也簡單(低)

haproxy 是彌補了Nginx的缺點,也是工作在七層,基本上都支援所有的應用,支援session會話功能,支援cookie,負載量大,支援動靜分離

LVS 不支援動靜分離和正規表達式,但是負載量最強,配置性低,工作在四層,因為隻做轉發沒有流量,是以對i/o的影響幾乎為零。

LVS有幾種工作模式呢

LVS-DR:這是什麼意思呢? 就是如果用戶端發送來請求的話,資料不會直接就到realserver那邊,而是先到LVS手上,然後LVS在通過他所謂的DR工作模式和排程算法去叫一台realserver來直接把資料包回應client,不用把資料再給LVS。這就是負載均衡器與正反向代理不一樣的地方。

LVS-NAT:即網絡位址轉換,這個呢也是跟上面的DR有些類似,隻是有一點不同的他的工作模式變了,年成啥樣了呢,它是這樣的:當用戶端發來請求之後,他會根據他的這個排程算法和工作模式去一台叫realserver回應client,而在回應之前,realserver還有LVS有些事情要先完成才能完成這項叫做NAT的工作模式“工程”,那realserver跟LVS要做什麼事情呢,要做的事情會很多麼?沒有其實原理也很簡單,跟網絡層的ARP協定一樣,隻是這裡是把client的IP跟端口先轉換成realserver的IP和端口,是以做完這件事情之後當然要開啟網關路由了,那網關路由是随便指的麼?NO ,網關路由是要指LVS的IP了,因為由它(LVS)給你回應資料的,是以指定網關的IP就是它了。在realserver上的工作已經做完了,接下來就該LVS什麼都不用配置,隻是LVS的工作模式是等realserver把資料轉回來之後,就是轉到LVS手上之後,LVS愛沒有把資料直接給client,而是先把之前client請求過來的IP和端口轉成VIP(虛拟IP),開始client請求資料的時候不是先把clientIP和端口改為realserver的IP和端口去跟realserver要資料去了麼,這次要把資料傳回給client,也是要經過跟去realserver要資料一樣,隻不過傳回資料做的動作就不一樣了,傳回資料的動作是把改成realserver的IP和端口改成VIP(虛拟IP),不知道這樣講解你們時候明白了,這NAT模式真的就有點想正反向代理了。

LVS-TUN:即隧道的方式。 跟NAT不同的一點就是他不用将client的IP和端口位址重寫。那是怎樣呢?那就是将client的資料包封裝到一個叫做IPtun的包裡面也就是相當于二次封裝,然後就把封裝過後的包通過他的工作模式跟排程算法來決定要叫那一台realserver直接給client回應  

它的詳細工作流程應該是這樣的  client發送請求,然後LVS-TUN的工作模式就把client發送過來的包通過二次封裝成ip tun的包,然後通過排程算法發送給realserver 節點,realserver節點就解包之後直接發送給client。  就這樣就完事了

mysql 的性能調優

1 禁用numa

2 修改核心的排程算法 deadline

3修改啟動腳本

4 檔案描述符

什麼是fastDFS 

fastDFS架構至少有client tracker  storage 這三個構成,文字對于講it的技術方面來講,隻要能了解了,就是好表達。是以有時候追求完美不是錯,但要學會用在哪方面

想完全了解fastDFS這個東西首先你得知道它初衷設計的目的是基于C(客戶機)/S(伺服器)模式。

跟這個有一點相似的FTP服務,FTP這個服務也是基于C/S架構的