標籤:work cpu size min 地址 bsp 執行檔案 密碼 ons
補 系統架構
nginx接到請求後轉換為外部ip,然後把請求轉寄到tomcat,還有種方式是轉寄到apache,或者其他語言的應用伺服器ngnix:是web伺服器,接受和轉寄請求用的,不做任何動態處理瀏覽器直接請求cdn(有錢用cdn,沒錢用檔案伺服器);
Cdn 內容分髮網絡 全稱是Content Delivery Network
面試:Cdn 的時間演算法,基於什麼的演算法
mysql:資料庫伺服器redis:叢集:多台機器,放一起,請求的時候如果有一個掛了,不影響正常使用,個數是單數,一個leader,多個follower,半數掛了叢集就掛了訊息佇列:發個東西過去,排隊,第一個人發了第二個發,這個順序是按接收到的時間kafka,ZK(zookeeper):一說這兩個肯定是叢集日誌分析:需要用到awk,grep,sed確定效能指標:日誌查看瞭解pv PV:page view,頁面瀏覽量或點擊量,重新整理一次頁面即被計算一次,簡稱PV,UV:即Unique Visitor,訪問您網站的一台電腦用戶端為一個訪客。00:00-24:00內相同的用戶端只被計算一次IP(獨立IP):指獨立IP數。00:00-24:00內相同IP地址之被計算一次KLE、 Maven 自己瞭解
面試題:大資料移轉怎麼遷移,比如你伺服器上有一個10個g的記錄檔,你怎麼去遷移
傳之前 校正MD5 確保傳過去的資料一致
保證完整性
根據網路傳輸效率,考慮怎麼分區 伺服器直接用scp 命令
傳輸完成後校正MD5 然後再組裝
儲存分區 多線程
速度快,安全係數高
所有的檔案都是二進位形式儲存,取決於你以什麼形式開啟
利用分區傳輸+多線程傳輸的機制
1.分區,把大記憶體的資料分成n片
2.md5 演算法校正,在傳輸前傳輸後分別校正,檢查檔案傳輸正確性
3.多線程傳,使用時間為單線程的n分之一
70162107
一、Apache1、Apache 簡介Apache HTTP Server 是一個開源的網頁伺服器,具有簡單、速度快、穩定性高的特點,並且還可以作為Proxy 伺服器 2、Apache 安裝
如果需要整合php 用lampp 整合套件
Find / -name httpd 尋找命令 / 根目錄下的所有路徑 -name 通過名字
Find / |grep httpd 模糊尋找
A,使用yum安裝
Yum 安裝
apache /etc/httpd 設定檔 為 httpd.conf 可執行檔
/usr/sbin/httpd 啟動apache service httpd start|restart|stop (yum 安裝會作為一個系統服務)
B,使用安裝包安裝
C,Lampp 內建的httpd
bin 目錄所有可執行檔
/opt/lampp/etc lampp 設定檔
/opt/lampp/etc/extra 擴充的設定檔
查看Apache 版本:
/opt/lampp/bin/httpd -v 查看apache 版本
/usr/sbin/httpd -V 查看你安裝的apache的版本資訊等細節
設定檔 :/opt/lampp/etc/httpd.conf
/etc/httpd/conf/httpd.conf
設定檔常見修改的地方:
ServerRoot "/opt/lampp"
Listen 監聽 直接提供連接埠 Listen 9090
3、Apache 主要目錄和設定檔
命令:
設定檔 :/opt/lampp/etc/httpd.conf
/etc/httpd/conf/httpd.conf
查看進程
ps -ef ps -aux
ps -ef
Root 使用者啟動主進程的同時會啟動一些子進程
所以 部署php項目,將項目放到/opt/lamp/htdocs該目錄下
Php 項目都是暖開機 項目不停止運行
1、拉代碼
2、修改設定檔
部署好bbs後有一個初始化使用者名稱密碼:其實修改的是下面檔案
Apache 擴充檔案
重點:Apache 工作模式
用的系統的apache /opt/lampp/etc/extra 下的httpd-mpm.conf
網頁伺服器Apache 目前一共有三種穩定的MPM(Multi -Processing Module,多進程處理模組)模式。它們分別是prefork ,worker和event
查看當前工作模式
/opt/lampp/bin/httpd -v 查看apache 版本
/usr/sbin/httpd -V 查看你安裝的apache的版本資訊等細節
中Server MPM 欄位
1、Prefork 模式 單進程單線程,一對一
Prefork MPM是一個非常穩定的模式,Apache 在啟動之初,會預派生fork 一些子進程,然後等待請求進來,並且總會保持一些備用的子進程。
同時派生出的每個子進程只有一個線程,在一個時間點內只能處理一個請求。Prefork MPM在效率上要比Worker MPM高,但是在記憶體使用量方面也會大很多。
它並不擅長處理高並發請求,在這種情境下,它會將請求放進隊列中,一直等到有可用進程,請求才會被處理。
參數詳解:
StartServers //指定伺服器啟動時建立的子進程數,預設為5
MinSpareServers //指定空閑子進程的最小數量,預設為5.如果當前空閑子進程數小於配置的數量則Apache會以最大每秒一個的速度建立新的子進程
MaxSpareServers //指定空閑子進程的最大數量,預設為10.如果當前有超過設定的最大進程數則會殺死多餘的進程,如果設定的比MinSpareServers 小,則Apache會預設修改為MinSpareServers +1
MaxRequestWorkers //限定伺服器同一時間內用戶端最大接入的請求數量,預設是150.任何超過了該限制的請求都要進入等待隊列,
一旦一個個串連被釋放,隊列中的請求才將得到服務。在Apache2.3 前又叫MaxClients
MaxConnectionsPerChild //每個子進程的在其生命週期內允許最大的請求數量,如果請求總數已經達到這個數值,子進程將會結束;
如果設定為0,子進程將永遠不會結束。若該值設定為非0值,可以防止運行PHP導致的記憶體流失。
ServerLimit 2000 //MaxRequestWorkers(MaxClitnes)最大是256個線程,如果需要更大就需要加上該參數了。
這個參數的最大值是2000,如果需要更大需要編譯apache。生效前提:必須放在其他指令的前面
進程數與cpu 有關 不可能全部佔滿、
思考:那要是避免排隊的情況 可以直接改 prefork的數值嗎?
2、Aache工作模式-Work模式 單進程,多線程 一對多
參數詳解:
StartServers //伺服器啟動時建立的子進程數
MaxClients //
MinSpareThreads //最小空閑線程數,這個MPM將基於整個伺服器監控空閑線程數。假如伺服器中的空閑線程數太少,則將會建立新的空閑線程
MaxSpareThreads //最大空閑線程數。這個MPM將基於整個伺服器監控空閑線程數。假如伺服器中的總的空閑線程數太多,子進程將殺死多餘的空閑線程。最大
空閑線程數的取值範圍是有限制的。Work 需要其大於等於MinSpareThreads 和ThreadsPerChild 的總和
ThreadsPerChild //每個子進程建立的常駐執行線程數,子進程在啟動時建立這些線程後就不會再建立新線程了
MaxRequestsPerChild //允許同時伺服的最大接入請求數量。任何超過該限制的請求都將進入等候隊列
每個進程能處理多少個請求,處理完成後則會死掉
思考:現有如下配置
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25 固定為25不可變
MaxRequestsPerChild 0 每個進程能處理多少個請求,處理完成後則會死掉
</IfModule>
4個進程 每個進程允許25個線程 總共100個 不符合maxsparethreads 75
則會殺掉一個進程 則代表一次性殺掉了25個線程 符合maxsparethreads
在25 ~ 75 之間
如果不滿足最小的minsparethreads25 則會建立一個進程
Work 模式不安全 一個進程死掉後子線程全部被殺掉
3、Apache工作模式-Event模式 (具體參考ppt)
Apache 工作模式切換
切換工作模式 修改檔案名稱即可 預設是prefork
舉例說明:把這個改為httpd名,工作模式變為work
重點:Apache 監控
一、如何擷取apache監控參數
Vi /etc/httpd/conf/httpd.conf
重啟apache
瀏覽器輸入:http://ip/server-status
Apache 最佳化
面試:怎麼去apache調優?最佳化手段就是把prefork改為woker,提高支援的線程數worker有可能崩根據實際使用方式,評估下壓力情況,使用者,開看工作模式是哪個 總之,apache是世界上最好的web伺服器
中介軟體監控之Apache