成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

服務器優(yōu)化的五大“軍規(guī)”

譯文
運維 服務器運維
下面這五條規(guī)則可以幫助你優(yōu)化安裝的Drupal服務器,另外附有一些示例,說明如何運用這些規(guī)則。服務器優(yōu)化是個龐大的領域,它在不斷進化,但是我們可以通過研究分析一些簡單的情況,了解比較復雜的情況。

下面這五條規(guī)則可以幫助你優(yōu)化安裝的Drupal服務器,另外附有一些示例,說明如何運用這些規(guī)則。服務器優(yōu)化是個龐大的領域,它在不斷進化,但是我們可以通過研究分析一些簡單的情況,了解比較復雜的情況。

下面我們側(cè)重于幾個變量,衡量它們對性能帶來的影響。

***條規(guī)則:要是不測試性能,優(yōu)化就無從談起。

現(xiàn)在有好多工具可以用來準確地評估和測試性能,不過本文就著重介紹最重要的一款工具:Apache Benchmark。使用該工具在你的網(wǎng)站上查詢特定頁面(甚至可以向它傳送cooki信息,模擬通過驗證的用戶),以測量響應情況。你可以在接受測試的服務器上的命令行使用Apache Benchmark,同時仍能獲得有效的結(jié)果,因為該工具占用的處理器和內(nèi)存資源很少。下面是一種典型的用法:

$ ab -n 1000 -c 20 http://example.com/
這里的值如下:
n = 頁面請求的數(shù)量
c = 并發(fā)連接的數(shù)量
最重要的參數(shù)是c,即并發(fā)請求的數(shù)量,而n這個數(shù)要足夠大,才能提供穩(wěn)定的結(jié)果。關鍵在于,要使用不同的c值來測試網(wǎng)站,先從小的數(shù)值開始,逐步加大,直到“每秒請求”的返回值開始下降。比如說:
$ ab -n 1000 -c 20 http://example.com/ | grep ‘Requests per second’
每秒請求:45.29 [#/sec](平均值)
$ ab -n 1000 -c 40 http://example.com/ | grep ‘Requests per second’
每秒請求:46.91 [#/sec](平均值)
$ ab -n 1000 -c 60 http://example.com/ | grep ‘Requests per second’
每秒請求:8.55 [#/sec](平均值)
$ ab -n 1000 -c 80 http://example.com/ | grep ‘Requests per second’
每秒請求:2.21 [#/sec](平均值)

我們可以使用更小的增量來細化c值,但是以10為最接近倍數(shù)通常足矣。

#p# 第二條規(guī)則:減少占用的內(nèi)存,直到分頁停止。

每秒請求數(shù)突然下降最有可能的原因是,我們讓內(nèi)存過載,系統(tǒng)開始交換至分頁文件。這給總體性能帶來的影響與在Windows、Mac OS X或支持分頁機制的任何系統(tǒng)上打開過多應用程序帶來的影響一樣。

在你測試性能后,看一下使用了多少個交換文件。下面是4GB服務器上的典型值:

$ free -m
total used free shared buffers cached
Mem: 4011 1481 2530 0 45 824
-/+ buffers/cache: 611 3400
Swap: 8191 2145 8191

這里我們使用2145 MB大小的交換文件;在使用***的c值測試性能時,可能已創(chuàng)建了該文件。你首先要做的就是清空交換文件,然而查一下值是否回到零:

$ sudo swapoff -a
$ sudo swapon -a
$ free -m
total used free shared buffers cached
Mem: 4011 1379 2632 0 45 834
-/+ buffers/cache: 499 3512
Swap: 8191 0 8191

現(xiàn)在關鍵是,使用接近我們看到性能下降的那個值的c值,重新做一遍上面的測試,檢查每次請求后的分頁文件:

$ ab -n 1000 -c 30 http://example.com/ | grep ‘Requests per second’
每秒請求:45.93 [#/sec](平均值)
$ free -m | grep Swap
Swap: 8191 0 8191
$ ab -n 1000 -c 40 http://example.com/ | grep ‘Requests per second’
每秒請求:40.31 [#/sec](平均值)
$ free -m | grep Swap
Swap: 8191 312 8191
$ ab -n 1000 -c 50 http://example.com/ | grep ‘Requests per second’
每秒請求:12.27 [#/sec](平均值)
$ free -m | grep Swap
Swap: 8191 1902 8191

你可以從上面的結(jié)果中看到,當服務器在約40個并發(fā)請求的情況下開始分頁時,請求速度大幅下降。

#p# 第三條規(guī)則:對連接而言,多就是少。

默認情況下,Apache和MySQL配置成接受150條連接。應用PHP的大多數(shù)系統(tǒng)(如Drupal)每個線程只會打開一條連接,所以你可以在連接兩頭,安全地將連接數(shù)量設成同一個值。說明一點,MySQL實際上允許n+1條連接,所以你有一條額外的連接用于管理。

遺憾的是,有些服務器管理員試圖“優(yōu)化”服務器時,會將連接數(shù)量提高到500條、10000條或者甚至更多。要是服務器在負載狀態(tài)下運行,這會帶來嚴重影響。

Drupal網(wǎng)站通常每個請求需要超過32 MB的內(nèi)存,你只要查看命令top返回的結(jié)果,就可以留意平均值:

$ top
top - 20:28:52 up 12:11, 2 users, load average: 1.34, 0.55, 0.35
Tasks: 93 total, 10 running, 83 sleeping, 0 stopped, 0 zombie
Cpu(s): 50.2%us, 21.4%sy, 0.0%ni, 28.0%id, 0.0%wa, 0.0%hi, 0.1%si, 0.3%st
Mem: 4108192k total, 1787064k used, 2321128k free, 46520k buffers
Swap: 8388604k total, 0k used, 8388604k free, 861772k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32080 www-data 20 0 419m 64m 27m S 26 1.6 0:01.19 apache2
32110 www-data 20 0 419m 65m 28m S 25 1.6 0:01.69 apache2
32025 www-data 20 0 419m 63m 27m S 24 1.6 0:01.89 apache2
32065 www-data 20 0 417m 62m 27m S 22 1.6 0:01.13 apache2
32178 www-data 20 0 408m 53m 27m R 22 1.3 0:00.66 apache2
32024 www-data 20 0 418m 64m 28m R 21 1.6 0:02.85 apache2
32176 www-data 20 0 417m 62m 27m S 21 1.6 0:00.99 apache2
32032 www-data 20 0 408m 53m 27m S 21 1.3 0:02.45 apache2
32104 www-data 20 0 417m 62m 28m S 21 1.6 0:02.55 apache2
32116 www-data 20 0 415m 59m 27m R 21 1.5 0:01.79 apache2
32119 www-data 20 0 417m 62m 27m S 21 1.6 0:01.04 apache2
32164 www-data 20 0 417m 62m 27m R 21 1.6 0:00.99 apache2
32179 www-data 20 0 408m 53m 27m R 21 1.3 0:00.63 apache2
32222 www-data 20 0 403m 48m 27m S 17 1.2 0:00.50 apache2
23906 mysql 20 0 675m 115m 6628 S 14 2.9 2:33.85 mysqld
32147 www-data 20 0 419m 64m 27m R 14 1.6 0:02.26 apache2
32226 www-data 20 0 416m 56m 23m R 9 1.4 0:00.26 apache2

關鍵在于,估計Apache使用了多少內(nèi)存,為此只要求進程所用的RES(常駐非交換物理內(nèi)存)值的平均值。這里RES的平均值為約62MB。

你還要查看服務器在空載狀態(tài)下(這時沒有apache2進程在運行)的閑置內(nèi)存量:
$ top
top - 20:40:45 up 12:23, 1 user, load average: 0.29, 0.38, 0.45
Tasks: 71 total, 1 running, 70 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4108192k total, 1388132k used, 2720060k free, 46680k buffers
Swap: 8388604k total, 0k used, 8388604k free, 866208k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32061 jfparadi 20 0 19272 1244 932 R 0 0.0 0:01.52 top
1 root 20 0 23628 1780 1244 S 0 0.0 0:00.64 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:02.56 ksoftirqd/0
4 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/0
5 root RT 0 0 0 0 S 0 0.0 0:00.03 migration/1
6 root 20 0 0 0 0 S 0 0.0 0:01.19 ksoftirqd/1
7 root RT 0 0 0 0 S 0 0.0 0:00.03 migration/2
8 root 20 0 0 0 0 S 0 0.0 0:00.90 ksoftirqd/2
9 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/3
10 root 20 0 0 0 0 S 0 0.0 0:00.74 ksoftirqd/3
11 root 20 0 0 0 0 S 0 0.0 0:01.94 events/0
12 root 20 0 0 0 0 S 0 0.0 0:01.91 events/1
13 root 20 0 0 0 0 S 0 0.0 0:01.79 events/2
14 root 20 0 0 0 0 S 0 0.0 0:03.11 events/3
15 root 20 0 0 0 0 S 0 0.0 0:00.00 cpuset
16 root 20 0 0 0 0 S 0 0.0 0:00.00 khelper
19 root 20 0 0 0 0 S 0 0.0 0:00.04 netns
20 root 20 0 0 0 0 S 0 0.0 0:00.00 async/mgr
23 root 20 0 0 0 0 S 0 0.0 0:00.00 xenwatch
24 root 20 0 0 0 0 S 0 0.0 0:00.00 xenbus
56 root 20 0 0 0 0 S 0 0.0 0:00.11 sync_supers

這里,閑置內(nèi)存量是2720060KB,即2656MB。
現(xiàn)在,你需要使用這個簡單等式,確認上面發(fā)現(xiàn)的c值:
c = FREE / RES
c = 2656MB / 62MB
c = 43(接近上面發(fā)現(xiàn)的40)

這個值是服務器開始崩潰的閾值,我們要阻止Apache遇到這個極限值。我們可以將客戶端數(shù)量從150個減少到40個,看看對性能有什么影響。

如果是Apache,在你使用的特定MPM實現(xiàn)所對應的部分下面編輯配置文件,并調(diào)整這個值:
MaxClients 150
如果是MySQL,設置或調(diào)整這個值:
max_connections = 150
一旦你根據(jù)上面發(fā)現(xiàn)的數(shù)值(我們在這里使用40)調(diào)整了這些值,重新測試一下性能:
$ ab -n 1000 -c 20 http://example.com/ | grep ‘Requests per second’
每秒請求:44.43 [#/sec](平均值)
$ free -m | grep Swap
Swap: 8191 0 8191
$ ab -n 1000 -c 40 http://example.com/ | grep ‘Requests per second’
每秒請求:45.11 [#/sec](平均值)
$ free -m | grep Swap
Swap: 8191 0 8191
$ ab -n 1000 -c 60 http://example.com/ | grep ‘Requests per second’
每秒請求:43.27 [#/sec](平均值)
$ free -m | grep Swap
Swap: 8191 0 8191
$ ab -n 1000 -c 80 http://example.com/ | grep ‘Requests per second’
每秒請求:44.59 [#/sec](平均值)
$ free -m | grep Swap
Swap: 8191 0 8191

如你所見,分頁已被消除。但是為什么我們能夠響應超過40個的并發(fā)請求呢?完全是因為Apache將額外的請求放入隊列中,同時處理僅僅40個請求。客戶端響應仍會出現(xiàn)延遲,但是如果不讓內(nèi)存過載,每秒響應的請求更多。此外,每秒請求數(shù)值保持穩(wěn)定,因為處理速度取決于處理器。實際上,這兩個數(shù)都以等值單位:請求/秒和周期/秒來表示。

#p# 第四條規(guī)則:MySQL =內(nèi)存

很顯然,上述結(jié)果假設數(shù)據(jù)庫已經(jīng)過合理配置;假設我們沒有慢速查詢。實際上,對Drupal網(wǎng)站來說,MySQL通常并不耗用大量的處理器資源。在精心配置的服務器上,MySQL耗用的處理器資源只有10%到25%。

除了搜索活動外,查詢的冗余性很強;如果MySQL的緩存和線程能得到優(yōu)化,MySQL就能從中得益。看到MySQL被配置成使用近50%的可用內(nèi)存,這并不罕見。
很顯然,這個數(shù)依賴實際應用,原則就是為MySQL分配盡量多的內(nèi)存。

#p# 第五條規(guī)則:Apache =處理器

在Drupal網(wǎng)站上,Apache的大多數(shù)時間用于執(zhí)行PHP代碼。實際上,要看服務器有沒有得到優(yōu)化,一個直觀的指標就是當Apache使用100%的可用處理器資源時;系統(tǒng)的其他所有瓶頸都消除后,通常才會出現(xiàn)這一幕。

那是由于,如果你允許Apache響應太多的并發(fā)請求,它就會將可用的處理器資源分配給每一個請求,因而每秒請求的速度就不會增加!

結(jié)論
我們在本文中僅僅探討了服務器優(yōu)化的一些方面,而且作了幾個假設;不過我希望,上面這五條規(guī)則講得很清楚;希望它們會幫助你在部署時作出更明智的決定。
 
原文鏈接:http://www.appnovation.com/5-rules-optimize-your-server
 

責任編輯:張玉 來源: 51CTO
相關推薦

2009-08-21 19:16:45

刀片服務器綜合布線

2012-05-29 09:59:34

2009-07-30 17:58:52

刀片服務器機架服務器虛擬化

2017-05-23 09:00:07

2011-04-26 13:44:26

郵件服務器導購

2012-10-15 10:01:27

服務器托管IDC機房

2010-05-05 11:42:13

遠程管理Windows

2010-08-24 09:26:40

開源NAS服務器

2010-12-30 07:26:41

服務器

2009-02-06 13:05:00

服務器存儲服務器應用

2015-10-08 11:56:05

微服務器

2009-10-09 14:56:01

中小企業(yè)采購

2010-01-15 14:55:12

遠程管理Windows

2011-09-07 09:44:55

政府采購服務器

2011-05-20 09:41:50

Web服務器開源

2014-03-11 10:04:57

2011-01-27 15:23:35

2010-08-05 09:20:06

IBM刀片服務器

2011-03-22 09:58:29

服務器養(yǎng)護

2011-08-29 10:06:48

服務器遷移
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 天天拍夜夜爽 | 午夜免费福利电影 | 国产精品久久久久久影院8一贰佰 | 国产精品一区二区久久久久 | 黄色a级一级片 | 亚洲国产精品va在线看黑人 | 亚洲一二三区不卡 | 欧美成人精品一区二区男人看 | 久久久久久久久一区 | 国产精品区二区三区日本 | 精品视频国产 | 精品粉嫩aⅴ一区二区三区四区 | 成人三级视频 | 黄色毛片在线看 | 免费黄色录像片 | av不卡一区 | 日韩欧美视频在线 | 久久久亚洲一区 | 久草青青草 | 亚洲国产成人精品一区二区 | 91久久国产综合久久 | 91亚洲国产成人久久精品网站 | 亚洲福利在线视频 | 中文天堂在线观看 | 99久久久久久 | 国产第一页在线观看 | 97人澡人人添人人爽欧美 | 秋霞电影院午夜伦 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 亚洲国产一区二区视频 | 欧美激情va永久在线播放 | 96av麻豆蜜桃一区二区 | 国产不卡视频 | 国产日韩精品一区二区 | 精品在线视频播放 | 欧美日韩亚洲视频 | 日韩欧美国产一区二区 | 欧美精品一区二区三区在线播放 | 国产一二三区精品视频 | 涩涩视频在线观看免费 | 成人在线视频看看 |