文章來源:http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-1/index" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

[轉(zhuǎn)]LAMP 系統(tǒng)性能調(diào)優(yōu),第 1 部分: 理解 LAMP

系統(tǒng) 2579 0
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>


文章來源: http://www.ibm.com/developerworks/cn/linux/l-tune-lamp-1/index.html

LAMP 系統(tǒng)性能調(diào)優(yōu),第 1 部分: 理解 LAMP 架構(gòu)

LAMP 系統(tǒng)的工作原理、性能度量方法及底層操作系統(tǒng)的調(diào)優(yōu)方法

developerWorks
文檔選項(xiàng)
<noscript></noscript>
將此頁(yè)作為電子郵件發(fā)送

將此頁(yè)作為電子郵件發(fā)送

<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- this content will be automatically generated across all content areas -->
<!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

級(jí)別: 中級(jí)

Sean A. Walberg ( sean@ertw.com ), 高級(jí)網(wǎng)絡(luò)工程師

2007 年 5 月 09 日

如今,使用 LAMP(Linux?、Apache、MySQL 和 PHP/Perl)架構(gòu)的應(yīng)用程序不斷被開發(fā)和部署。 但是,服務(wù)器管理員對(duì)應(yīng)用程序本身幾乎沒有控制能力,因?yàn)閼?yīng)用程序是別人編寫的。這份共三部分的系列文章將討論許多服務(wù)器配置問題,這些配置會(huì)影響應(yīng)用程序的性能。第一篇文章討論 LAMP 架構(gòu)、一些性能度量技術(shù)以及一些基本的 Linux 內(nèi)核、硬盤和文件系統(tǒng)調(diào)節(jié)。后續(xù)的文章將研究 Apache、MySQL 和 PHP 組件的調(diào)優(yōu)。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

Linux、Apache、MySQL 和 PHP(或 Perl)是許多 Web 應(yīng)用程序的基礎(chǔ) —— 從 to-do 列表到 blog,再到電子商務(wù)站點(diǎn)。WordPress 和 Pligg 是兩個(gè)支持大容量 Web 站點(diǎn)的常用軟件包。這種架構(gòu)簡(jiǎn)稱為 LAMP。幾乎每個(gè) Linux 發(fā)布版都包含 Apache、MySQL、PHP 和 Perl,所以安裝 LAMP 軟件是非常容易的。

安裝的簡(jiǎn)便性使人誤以為這些軟件會(huì)自行順利地運(yùn)行,但是實(shí)際情況并非如此。最終,應(yīng)用程序的負(fù)載會(huì)超出后端服務(wù)器自帶設(shè)置的處理能力,應(yīng)用程序的性能會(huì)降低。LAMP 安裝需要不斷監(jiān)控、調(diào)優(yōu)和評(píng)估。

系統(tǒng)調(diào)優(yōu)對(duì)于不同的人有不同的含義。本系列主要關(guān)注 LAMP 組件(Linux、Apache、MySQL 和 PHP)的調(diào)優(yōu)。對(duì)應(yīng)用程序本身進(jìn)行調(diào)優(yōu)是另一個(gè)復(fù)雜的問題。應(yīng)用程序和后端服務(wù)器之間存在一種共生關(guān)系:未能適當(dāng)調(diào)優(yōu)的服務(wù)器甚至?xí)棺詈玫膽?yīng)用程序在負(fù)載之下崩潰,而借助充分的調(diào)優(yōu),完全可以避免編寫得很糟糕的應(yīng)用程序使服務(wù)器緩慢如牛。幸運(yùn)的是,正確的系統(tǒng)調(diào)優(yōu)和監(jiān)視可以指出應(yīng)用程序中的問題。

LAMP 架構(gòu)

對(duì)任何系統(tǒng)進(jìn)行調(diào)優(yōu)的第一步都是了解它的工作原理。按照最簡(jiǎn)單的形式,基于 LAMP 的應(yīng)用程序是用 PHP 這樣的腳本語言編寫的,它們作為 Linux 主機(jī)上運(yùn)行的 Apache Web 服務(wù)器的一部分運(yùn)行。

PHP 應(yīng)用程序通過請(qǐng)求的 URL、所有表單數(shù)據(jù)和已捕獲的任意會(huì)話信息從客戶機(jī)獲得信息,從而確定應(yīng)該執(zhí)行什么操作。如有必要,服務(wù)器會(huì)從 MySQL 數(shù)據(jù)庫(kù)(也在 Linux 上運(yùn)行)獲得信息,將這些信息與一些 Hypertext Markup Language(HTML)模板組合在一起,并將結(jié)果返回給客戶機(jī)。當(dāng)用戶在應(yīng)用程序中導(dǎo)航時(shí),這個(gè)過程重復(fù)進(jìn)行;當(dāng)多個(gè)用戶訪問系統(tǒng)時(shí),這個(gè)過程會(huì)并發(fā)進(jìn)行。但是,數(shù)據(jù)流不是單向的,因?yàn)榭梢杂脕碜杂脩舻男畔⒏聰?shù)據(jù)庫(kù),包括會(huì)話數(shù)據(jù)、統(tǒng)計(jì)數(shù)據(jù)(包括投票)和用戶提交的內(nèi)容(比如評(píng)論或站點(diǎn)更新)。除了動(dòng)態(tài)元素之外,還有靜態(tài)元素,比如圖像、JavaScript 代碼和層疊樣式表(CSS)。

LAMP 的變體

LAMP 最初是指 Linux、Apache、MySQL 和 PHP(或 Perl)。但是,如果管理員不擅長(zhǎng) Linux,那么可以在 Microsoft? Windows? 上運(yùn)行 Apache、MySQL 和 PHP,這并非一種少見的情況。同樣,也可以將 Apache 換成別的系統(tǒng),比如 lighttpd,產(chǎn)生的仍然是 LAMP 風(fēng)格的系統(tǒng),但是首字母縮寫不再是 LAMP 了。也可以改用另一種開放源碼數(shù)據(jù)庫(kù)(比如 PostgreSQL 或 SQLite)、商業(yè)數(shù)據(jù)庫(kù)(比如 IBM? DB2?)或者免費(fèi)的商業(yè)引擎(比如 IBM DB2 Express-C)。

本文主要關(guān)注傳統(tǒng)的 LAMP 架構(gòu),因?yàn)檫@種架構(gòu)是最常見的,而且它的組件都是開放源碼的。

在研究 LAMP 系統(tǒng)中的請(qǐng)求流之后,就來看看可能出現(xiàn)性能瓶頸的地方。數(shù)據(jù)庫(kù)提供許多動(dòng)態(tài)信息,所以數(shù)據(jù)庫(kù)對(duì)查詢的響應(yīng)延遲都會(huì)反映在客戶機(jī)中。Web 服務(wù)器必須能夠快速地執(zhí)行腳本,還要能夠處理多個(gè)并發(fā)請(qǐng)求。最后,底層操作系統(tǒng)必須處于良好的狀態(tài)才能支持應(yīng)用程序。通過網(wǎng)絡(luò)在不同服務(wù)器之間共享文件的其他設(shè)置也可能成為瓶頸。

度量性能

持續(xù)地對(duì)性能進(jìn)行度量在兩個(gè)方面有幫助。首先,度量可以幫助了解性能趨勢(shì),包括好壞兩方面的趨勢(shì)。作為一個(gè)簡(jiǎn)單的方法,查看一下 Web 服務(wù)器上的中央處理單元(CPU)使用率,就可以了解 CPU 是否負(fù)載過重。同樣,查看過去使用的總帶寬并推斷未來的變化,可以幫助判斷什么時(shí)候需要進(jìn)行網(wǎng)絡(luò)升級(jí)。這些度量最好與其他度量和觀測(cè)結(jié)合考慮。例如,當(dāng)用戶抱怨應(yīng)用程序太慢時(shí),可以檢查磁盤操作是否達(dá)到了最大容量。

性能度量的第二個(gè)用途是,判斷調(diào)優(yōu)是對(duì)系統(tǒng)性能有幫助,還是使它更糟糕了。方法是比較修改之前和之后的度量結(jié)果。但是,為了進(jìn)行有效的比較,每次應(yīng)該只修改一個(gè)設(shè)置,然后對(duì)適當(dāng)?shù)闹笜?biāo)進(jìn)行比較以判斷修改的效果。每次只修改一個(gè)設(shè)置的原因應(yīng)該是很明顯的:同時(shí)做出的兩個(gè)修改很可能會(huì)相互影響。選擇用來進(jìn)行比較的指標(biāo)比較微妙。

選擇的指標(biāo)必須能夠反映應(yīng)用程序用戶感覺到的響應(yīng)。如果一項(xiàng)修改的目標(biāo)是減少數(shù)據(jù)庫(kù)的內(nèi)存占用量,那么取消各種緩沖區(qū)肯定會(huì)有幫助,但是這會(huì)犧牲查詢速度和應(yīng)用程序性能。所以,應(yīng)該選擇應(yīng)用程序響應(yīng)時(shí)間這樣的指標(biāo),這會(huì)使調(diào)優(yōu)向著正確的方向發(fā)展,而不僅僅是針對(duì)數(shù)據(jù)庫(kù)內(nèi)存使用量。

可以以許多方式度量應(yīng)用程序響應(yīng)時(shí)間。最簡(jiǎn)單的方法可能是使用 curl 命令,見清單 1。


清單 1. 使用 cURL 度量 Web 站點(diǎn)的響應(yīng)時(shí)間
                                      $ curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total}/    http://www.canada.com0.081:0.272:0.779
                    

清單 1 給出對(duì)一個(gè)流行的新聞?wù)军c(diǎn)執(zhí)行 curl 命令的情況。輸出通常是 HTML 代碼,通過 -o 參數(shù)發(fā)送到 /dev/null -s 參數(shù)去掉所有狀態(tài)信息。 -w 參數(shù)讓 curl 寫出表 1 列出的計(jì)時(shí)器的狀態(tài)信息:


表 1. curl 使用的計(jì)時(shí)器
計(jì)時(shí)器 描述 time_connect time_starttransfer time_total
建立到服務(wù)器的 TCP 連接所用的時(shí)間
在發(fā)出請(qǐng)求之后,Web 服務(wù)器返回?cái)?shù)據(jù)的第一個(gè)字節(jié)所用的時(shí)間
完成請(qǐng)求所用的時(shí)間

這些計(jì)時(shí)器都相對(duì)于事務(wù)的起始時(shí)間,甚至要先于 Domain Name Service(DNS)查詢。因此,在發(fā)出請(qǐng)求之后,Web 服務(wù)器處理請(qǐng)求并開始發(fā)回?cái)?shù)據(jù)所用的時(shí)間是 0.272 - 0.081 = 0.191 秒??蛻魴C(jī)從服務(wù)器下載數(shù)據(jù)所用的時(shí)間是 0.779 - 0.272 = 0.507 秒。

通過觀察 curl 數(shù)據(jù)及其隨時(shí)間變化的趨勢(shì),可以很好地了解站點(diǎn)對(duì)用戶的響應(yīng)性。

當(dāng)然,Web 站點(diǎn)不僅僅由頁(yè)面組成。它還有圖像、JavaScript 代碼、CSS 和 cookie 要處理。 curl 很適合了解單一元素的響應(yīng)時(shí)間,但是有時(shí)候需要了解整個(gè)頁(yè)面的裝載速度。

用于 Firefox 瀏覽器的 Tamper Data 擴(kuò)展(參見 參考資料 一節(jié)中的鏈接)可以在日志中記錄 Web 瀏覽器發(fā)出的每個(gè)請(qǐng)求,并顯示每個(gè)請(qǐng)求所用的下載時(shí)間。使用這個(gè)擴(kuò)展的方法是,選擇 Tools > Tamper Data 來打開 Ongoing requests 窗口。裝載要考察的頁(yè)面,然后就會(huì)看到瀏覽器發(fā)出的每個(gè)請(qǐng)求的狀態(tài)和裝載每個(gè)元素所用的時(shí)間。圖 1 給出裝載 developerWorks 主頁(yè)的結(jié)果。


圖 1. 用于裝載 developerWorks 主頁(yè)的請(qǐng)求細(xì)目
用于裝載 developerWorks 主頁(yè)的請(qǐng)求細(xì)目

每一行描述一個(gè)元素的裝載情況。顯示的數(shù)據(jù)包括發(fā)出請(qǐng)求的時(shí)間、裝載所用的時(shí)間、大小和結(jié)果。Duration 欄列出裝載元素本身所用的時(shí)間,Total Duration 欄列出所有子元素所用的時(shí)間。在圖 1 中,裝載主要頁(yè)面所用的時(shí)間是 516 毫秒(ms),但是裝載所有東西并顯示整個(gè)頁(yè)面所用的時(shí)間是 5101 ms。

Tamper Data 擴(kuò)展有一種有用的模式,將頁(yè)面裝載數(shù)據(jù)的輸出繪制成圖形。右擊 Ongoing requests 窗口上半部分的任何地方,并選擇 Graph all 。圖 2 顯示圖 1 中數(shù)據(jù)的圖形化視圖。


圖 2. 用于裝載 developerWorks 主頁(yè)的請(qǐng)求的圖形化視圖
用于裝載 developerWorks 主頁(yè)的請(qǐng)求的圖形化視圖

在圖 2 中,每個(gè)請(qǐng)求的持續(xù)時(shí)間顯示為深藍(lán)色,并相對(duì)于頁(yè)面裝載的啟始時(shí)間顯示。所以,可以看出哪些請(qǐng)求使整個(gè)頁(yè)面的裝載變慢了。

盡管關(guān)注的重點(diǎn)是頁(yè)面裝載時(shí)間和用戶體驗(yàn),但是也不要忽視核心系統(tǒng)指標(biāo),比如磁盤、內(nèi)存和網(wǎng)絡(luò)。有許多實(shí)用程序可以捕獲這些信息;其中最有幫助的可能是 sar 、 vmstat iostat 。關(guān)于這些工具的更多信息,請(qǐng)參見 參考資料 一節(jié)。





回頁(yè)首


基本系統(tǒng)調(diào)節(jié)

在對(duì)系統(tǒng)的 Apache、PHP 和 MySQL 組件進(jìn)行調(diào)優(yōu)之前,應(yīng)該花一些時(shí)間確保底層 Linux 組件的運(yùn)行正常。還應(yīng)該對(duì)正在運(yùn)行的服務(wù)進(jìn)行縮減,只運(yùn)行需要的那些服務(wù)。這不但是一種良好的安全實(shí)踐,而且可以節(jié)省內(nèi)存和 CPU 時(shí)間。

一些快速的內(nèi)核調(diào)優(yōu)措施

大多數(shù) Linux 發(fā)布版都定義了適當(dāng)?shù)木彌_區(qū)和其他 Transmission Control Protocol(TCP)參數(shù)??梢孕薷倪@些參數(shù)來分配更多的內(nèi)存,從而改進(jìn)網(wǎng)絡(luò)性能。設(shè)置內(nèi)核參數(shù)的方法是通過 proc 接口,也就是通過讀寫 /proc 中的值。幸運(yùn)的是, sysctl 可以讀取 /etc/sysctl.conf 中的值并根據(jù)需要填充 /proc ,這樣就能夠更輕松地管理這些參數(shù)。清單 2 展示在互聯(lián)網(wǎng)服務(wù)器上應(yīng)用于 Internet 服務(wù)器的一些比較激進(jìn)的網(wǎng)絡(luò)設(shè)置。


清單 2. 包含較為激進(jìn)的網(wǎng)絡(luò)設(shè)置的 /etc/sysctl.conf
                                      # Use TCP syncookies when needednet.ipv4.tcp_syncookies = 1# Enable TCP window scalingnet.ipv4.tcp_window_scaling: = 1# Increase TCP max buffer sizenet.core.rmem_max = 16777216net.core.wmem_max = 16777216# Increase Linux autotuning TCP buffer limitsnet.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216# Increase number of ports availablenet.ipv4.ip_local_port_range = 1024 65000
                    

將這些設(shè)置添加到 /etc/sysctl.conf 的現(xiàn)有內(nèi)容中。第一個(gè)設(shè)置啟用 TCP SYN cookie。當(dāng)從客戶機(jī)發(fā)來新的 TCP 連接時(shí),數(shù)據(jù)包設(shè)置了 SYN 位,服務(wù)器就為這個(gè)半開的連接創(chuàng)建一個(gè)條目,并用一個(gè) SYN-ACK 數(shù)據(jù)包進(jìn)行響應(yīng)。在正常操作中,遠(yuǎn)程客戶機(jī)用一個(gè) ACK 數(shù)據(jù)包進(jìn)行響應(yīng),這會(huì)使半開的連接轉(zhuǎn)換為全開的。有一種稱為 SYN 泛濫(SYN flood) 的網(wǎng)絡(luò)攻擊,它使 ACK 數(shù)據(jù)包無法返回,導(dǎo)致服務(wù)器用光內(nèi)存空間,無法處理到來的連接。SYN cookie 特性可以識(shí)別出這種情況,并使用一種優(yōu)雅的方法保留隊(duì)列中的空間(細(xì)節(jié)參見 參考資料 一節(jié))。大多數(shù)系統(tǒng)都默認(rèn)啟用這個(gè)特性,但是確保配置這個(gè)特性更可靠。

啟用 TCP 窗口伸縮使客戶機(jī)能夠以更高的速度下載數(shù)據(jù)。TCP 允許在未從遠(yuǎn)程端收到確認(rèn)的情況下發(fā)送多個(gè)數(shù)據(jù)包,默認(rèn)設(shè)置是最多 64 KB,在與延遲比較大的遠(yuǎn)程客戶機(jī)進(jìn)行通信時(shí)這個(gè)設(shè)置可能不夠。窗口伸縮會(huì)在頭中啟用更多的位,從而增加窗口大小。

后面四個(gè)配置項(xiàng)增加 TCP 發(fā)送和接收緩沖區(qū)。這使應(yīng)用程序可以更快地丟掉它的數(shù)據(jù),從而為另一個(gè)請(qǐng)求服務(wù)。還可以強(qiáng)化遠(yuǎn)程客戶機(jī)在服務(wù)器繁忙時(shí)發(fā)送數(shù)據(jù)的能力。

最后一個(gè)配置項(xiàng)增加可用的本地端口數(shù)量,這樣就增加了可以同時(shí)服務(wù)的最大連接數(shù)量。

在下一次引導(dǎo)系統(tǒng)時(shí),或者下一次運(yùn)行 sysctl -p /etc/sysctl.conf 時(shí),這些設(shè)置就會(huì)生效。

配置磁盤來提高性能

磁盤在 LAMP 架構(gòu)中扮演著重要的角色。靜態(tài)文件、模板和代碼都來自磁盤,組成數(shù)據(jù)庫(kù)的數(shù)據(jù)表和索引也來自磁盤。對(duì)磁盤的許多調(diào)優(yōu)(尤其是對(duì)于數(shù)據(jù)庫(kù))集中于避免磁盤訪問,因?yàn)榇疟P訪問的延遲相當(dāng)高。因此,花一些時(shí)間對(duì)磁盤硬件進(jìn)行優(yōu)化是有意義的。

首先要做的是,確保在文件系統(tǒng)上禁用 atime 日志記錄特性。 atime 是最近訪問文件的時(shí)間,每當(dāng)訪問文件時(shí),底層文件系統(tǒng)必須記錄這個(gè)時(shí)間戳。因?yàn)橄到y(tǒng)管理員很少使用 atime ,禁用它可以減少磁盤訪問時(shí)間。禁用這個(gè)特性的方法是,在 /etc/fstab 的第四列中添加 noatime 選項(xiàng)。清單 3 給出了一個(gè)配置示例。


清單 3. 演示如何啟用 noatime 的 fstab 示例
                                      /dev/VolGroup00/LogVol00 /                      ext3    defaults,noatime        1 1LABEL=/boot             /boot                   ext3    defaults,noatime        1 2devpts                  /dev/pts                devpts  gid=5,mode=620  0 0tmpfs                   /dev/shm                tmpfs   defaults        0 0proc                    /proc                   proc    defaults        0 0sysfs                   /sys                    sysfs   defaults        0 0LABEL=SWAP-hdb2         swap                    swap    defaults        0 0LABEL=SWAP-hda3         swap                    swap    defaults        0 0
                    

在清單 3 中只修改了 ext3 文件系統(tǒng),因?yàn)? noatime 只對(duì)駐留在磁盤上的文件系統(tǒng)有幫助。為讓這一修改生效,不需要重新引導(dǎo);只需重新掛裝每個(gè)文件系統(tǒng)。例如,為了重新掛裝根文件系統(tǒng),運(yùn)行 mount / -o remount 。

有多種磁盤硬件組合,而且 Linux 不一定能夠探測(cè)出訪問磁盤的最佳方式??梢允褂? hdparm 命令查明和設(shè)置用來訪問 IDE 磁盤的方法。 hdparm -t /path/to/device 執(zhí)行速度測(cè)試,可以將這個(gè)測(cè)試結(jié)果作為性能基準(zhǔn)。為了使結(jié)果盡可能準(zhǔn)確,在運(yùn)行這個(gè)命令時(shí)系統(tǒng)應(yīng)該是空閑的。清單 4 給出在 hda 上執(zhí)行速度測(cè)試的結(jié)果。


清單 4. 在 /dev/hd 上執(zhí)行的速度測(cè)試
                                      # hdparm -t /dev/hda/dev/hda: Timing buffered disk reads:  182 MB in  3.02 seconds =  60.31 MB/sec
                    

這一測(cè)試說明,在這個(gè)磁盤上讀取數(shù)據(jù)的速度是大約每秒 60 MB。

在嘗試一些磁盤調(diào)優(yōu)選項(xiàng)之前,必須注意一個(gè)問題。錯(cuò)誤的設(shè)置可能損害文件系統(tǒng)。有時(shí)候會(huì)出現(xiàn)一個(gè)警告,指出這個(gè)選項(xiàng)與硬件不兼容;但是,有時(shí)候沒有警告消息。因此,在將系統(tǒng)投入生產(chǎn)之前,必須對(duì)設(shè)置進(jìn)行徹底的測(cè)試。在所有服務(wù)器上都采用標(biāo)準(zhǔn)的硬件也會(huì)有所幫助。

表 2 列出比較常用的一些選項(xiàng)。


表 2. hdparm 的常用選項(xiàng)
選項(xiàng) 描述 -vi -c -m -d 1 -X
向磁盤查詢它支持的設(shè)置以及它正在使用的設(shè)置。
查詢/啟用 (E)IDE 32 位 I/O 支持。 hdparm -c 1 /dev/hda 啟用這個(gè)設(shè)置。
查詢/設(shè)置每中斷多扇區(qū)模式。如果設(shè)置大于零,設(shè)置值就是每個(gè)中斷可以傳輸?shù)淖畲笊葏^(qū)數(shù)量。
啟用直接內(nèi)存訪問(DMA)傳輸并設(shè)置 IDE 傳輸模式。 hdparm 手冊(cè)頁(yè)詳細(xì)說明了在 -X 后面可以設(shè)置的數(shù)字。只有在 -vi 說明目前并未使用最快速的模式的情況下,才需要進(jìn)行這個(gè)設(shè)置。

不幸的是,對(duì)于 Fiber Channel and Small Computer Systems Interface(SCSI)系統(tǒng),調(diào)優(yōu)依賴于具體的驅(qū)動(dòng)器。

必須將有幫助的設(shè)置添加到啟動(dòng)腳本中,比如 rc.local 。

網(wǎng)絡(luò)文件系統(tǒng)調(diào)優(yōu)

網(wǎng)絡(luò)文件系統(tǒng)(NFS)是一種通過網(wǎng)絡(luò)共享磁盤的方法。NFS 可以幫助確保每個(gè)主機(jī)具有相同數(shù)據(jù)的拷貝,并確保修改反映在所有節(jié)點(diǎn)上。但是,在默認(rèn)情況下,NFS 的配置不適合大容量磁盤。

每個(gè)客戶機(jī)應(yīng)該用 rsize=32768,wsize=32768,intr,noatime 掛裝遠(yuǎn)程文件系統(tǒng),從而確保:

  • 使用大的讀/寫塊(數(shù)字指定最大塊大小,在這個(gè)示例中是 32KB)。
  • 在掛起時(shí) NFS 操作可以被中斷。
  • 不持續(xù)更新 atime 。

可以將這些設(shè)置放在 /etc/fstab 中,見 清單 3 。如果使用自動(dòng)掛裝器,那么應(yīng)該將這些設(shè)置放在適當(dāng)?shù)? /etc/auto.* 文件中。

在服務(wù)器端,一定要確保有足夠的 NFS 內(nèi)核線程來處理所有客戶機(jī)。在默認(rèn)情況下,只啟動(dòng)一個(gè)線程,但是 Red Hat 和 Fedora 系統(tǒng)會(huì)啟動(dòng) 8 個(gè)線程。對(duì)于繁忙的 NFS 服務(wù)器,應(yīng)該提高這個(gè)數(shù)字,比如 32 或 64??梢杂? nfsstat -rc 命令評(píng)估客戶機(jī),了解是否有阻塞的現(xiàn)象,這個(gè)命令顯示客戶機(jī)遠(yuǎn)程過程調(diào)用(RPC)統(tǒng)計(jì)數(shù)據(jù)。清單 5 顯示一個(gè) Web 服務(wù)器的客戶機(jī)統(tǒng)計(jì)數(shù)據(jù)。


清單 5. 顯示 NFS 客戶機(jī)的 RPC 統(tǒng)計(jì)數(shù)據(jù)
                                       # nfsstat -rcClient rpc stats:calls      retrans    authrefrsh1465903813   0          0       
                    

第二列 retrans 是零,這表示從上一次重新引導(dǎo)以來沒有出現(xiàn)需要重新傳輸?shù)那闆r。如果這個(gè)數(shù)字比較大,就應(yīng)該考慮增加 NFS 內(nèi)核線程。設(shè)置方法是將所需的線程數(shù)量傳遞給 rpc.nfsd ,比如 rpc.nfsd 128 會(huì)啟動(dòng) 128 個(gè)線程。任何時(shí)候都可以進(jìn)行這種設(shè)置。線程會(huì)根據(jù)需要啟動(dòng)或銷毀。同樣,這個(gè)設(shè)置應(yīng)該放在啟動(dòng)腳本中,尤其是在系統(tǒng)上啟用 NFS 的腳本。

關(guān)于 NFS,最后要注意一點(diǎn):如果可能的話,應(yīng)該避免使用 NFSv2,因?yàn)?NFSv2 的性能比 v3 和 v4 差得多。在現(xiàn)代的 Linux 發(fā)行版中這應(yīng)該不是問題,但是可以在服務(wù)器上檢查 nfsstat 的輸出,了解是否有任何 NFSv2 調(diào)用。





回頁(yè)首


后續(xù)內(nèi)容

分享這篇文章……

digg 將這篇文章提交到 Digg
del.icio.us 發(fā)布到 del.icio.us
Slashdot 提交到 Slashdot!

本文討論了 LAMP 的一些基本知識(shí)以及 LAMP 安裝的一些簡(jiǎn)單 Linux 調(diào)優(yōu)措施。除了 NFS 內(nèi)核線程之外,可以設(shè)置本文中討論的參數(shù),然后就不用理會(huì)它們了。本系列中的后兩篇文章主要關(guān)注 Apache、MySQL 和 PHP 調(diào)優(yōu)。這些組件的調(diào)優(yōu)與 Linux 的調(diào)優(yōu)有很大的差異,因?yàn)殡S著通信量的增長(zhǎng)、讀寫操作分布情況的變化和應(yīng)用程序的演化,需要不斷重新考察這些參數(shù)。




[轉(zhuǎn)]LAMP 系統(tǒng)性能調(diào)優(yōu),第 1 部分: 理解 LAMP 架構(gòu)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!??!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产成人综合亚洲动漫在线 | 亚洲精品中文字幕大岛优香 | 日韩少妇成熟A片无码专区 黄在线免费观看 | 日韩精品成人 | 老色鬼a∨在线视频在线观看 | 精品久久一区二区三区 | 久久亚洲二区 | 国产网站在线 | 久在线| 免费看a网站 | 国产成人av在线 | 欧美乱操 | 欧美一区二区三区四区视频 | 丁香婷婷网 | 精品一区二区三区视频 | 午夜精品亚洲 | 午夜视频免费 成人 | 久草久草久草 | 国产一区二区小早川怜子 | 欧美日韩综合一区 | 免费视频在线看 | 欧美日韩网站 | www欧美 | 不卡一区在线观看 | 男人激烈吮乳动态图 | 亚洲区视频 | 黄网站在线观看高清免费 | www成人国产在线观看网站 | 国产做国产爱免费视频 | 99国产在线 | 色中色在线视频 | 公么吃奶满足了我苏媚 | 国产精品日韩 | 日韩一级欧美一级毛片在线 | 日韩av资源站 | 91视频综合网| 色综合天天射 | 精品国产成人 | 久久99精品久久久久久综合 | 99欧美在线 | 国产精品福利在线观看免费不卡 |