天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

海量小文件導(dǎo)致高并發(fā)、大流量問(wèn)題的探討

  在互聯(lián)網(wǎng)快速發(fā)展的背景下,特別是Web 2.0,網(wǎng)絡(luò)上的數(shù)據(jù)內(nèi)容呈幾何級(jí)的增長(zhǎng),而其中增長(zhǎng)最快并且最容易給技術(shù)架構(gòu)帶來(lái)挑戰(zhàn)的就是數(shù)目龐大的小文件,如何來(lái)解決這種高并發(fā),大流量,小文件,熱點(diǎn)不集中的問(wèn)題,經(jīng)過(guò)我們大量研究,實(shí)踐之后,總結(jié)出這種海量小文件,高并發(fā)所存在的關(guān)鍵問(wèn)題和解決方案。

  我們先對(duì)比一下在Web 1.0的解決方案和Web 2.0的我們碰到的困難。

  Web 1.0解決方案:

  1、源數(shù)據(jù)量小,單臺(tái)squid即可達(dá)到很高的命中率。

  2、請(qǐng)求量大,用lvs+squid或者dns輪詢(xún)即可解決問(wèn)題。

  3、squid服務(wù)器磁盤(pán)IO壓力大,用超大內(nèi)存做Cache。

  Web 2.0目前的瓶頸:

  1、源數(shù)據(jù)數(shù)量很大,導(dǎo)致squid hash table索引效率不高,Cache命中率低。

  為了提高對(duì)文件的訪問(wèn)效率,往往會(huì)在前端配置一個(gè)稍大容量的緩存。但由于小文件的數(shù)量極其龐大,應(yīng)用對(duì)這些文件訪問(wèn)的隨機(jī)性非常高,使得Cache命中率極低,緩存失去了應(yīng)有的作用,導(dǎo)致應(yīng)用需要直接到后端存儲(chǔ)系統(tǒng)上讀取數(shù)據(jù),給存儲(chǔ)系統(tǒng)帶來(lái)了極大的壓力。剛開(kāi)始就是我們也采用了昂貴的高端存儲(chǔ)系統(tǒng)NETApp,但是在用戶(hù)高并發(fā)訪問(wèn)的情況下,存儲(chǔ)系統(tǒng)經(jīng)常出現(xiàn)長(zhǎng)時(shí)間無(wú)響應(yīng)的嚴(yán)重故障。

  2、源數(shù)據(jù)容量巨大,海量文件檢索效率低,從而也導(dǎo)致單臺(tái)squid命中率很低。

  有些頻道數(shù)據(jù)容量會(huì)超過(guò)200T,單臺(tái)squid只是杯水車(chē)薪,頻繁的Cache置換更是加劇了Cache效率低下,再加上現(xiàn)有的存儲(chǔ)系統(tǒng)無(wú)法有效管理海量小文件,并且在單個(gè)目錄下存放文件的數(shù)量有一定的限制,一旦文件數(shù)到達(dá)了一定規(guī)模之后,文件的檢索速度就急劇下降。我們只能通過(guò)多級(jí)目錄來(lái)組織存放大量的小文件,隨著目錄深度的增加,文件的檢索開(kāi)銷(xiāo)進(jìn)一步增大,檢索效率隨之下降。

  3、大量的cache導(dǎo)致的磁盤(pán)IO問(wèn)題。

  由于目前單臺(tái)Cache容量已經(jīng)達(dá)到上百G,文件系統(tǒng)瓶頸、磁盤(pán)IO問(wèn)題也很快凸顯。

  4、壓力過(guò)大導(dǎo)致的hit ratio抖動(dòng)。

  Cache刪除,寫(xiě)操作達(dá)到一定的比例,同時(shí)如果壓力較高,會(huì)導(dǎo)致hit ratio呈線性下降。即使Cache沒(méi)down,但也因?yàn)槊新实南陆刀?yīng)有的作用。

  5、特殊集群下的單臺(tái)失效問(wèn)題。

  在類(lèi)url hash的集群下,單臺(tái)cache失效會(huì)導(dǎo)致hash rehash,那么整個(gè)集群的squid命中率都會(huì)被沖擊。

  如何來(lái)解決這些問(wèn)題,思路如下:

  1、優(yōu)化squid hash table索引算法,需要修改源squid代碼。

  2、Cache集群,用類(lèi)url hash的方法,以增加Cache容量。

  ◆wccp: cisco的路由器均有此功能

  ◆carp: ISA,squid自身的7層調(diào)度協(xié)議

  ◆url hash: nginx haproxy等7層代理

  3、選擇合適的文件系統(tǒng)

  XFS使用更多的內(nèi)存來(lái)作為自己的高速緩存,以盡可能的延遲零散的寫(xiě)操作,盡可能的執(zhí)行批量寫(xiě)操作。

  4、選擇更合理的磁盤(pán)搭配策略,比如Raid策略或者單盤(pán)策略等

  Raid 5,10帶來(lái)了不錯(cuò)的安全性,但是會(huì)導(dǎo)致磁盤(pán)IO效率低下,不做Raid的單盤(pán)性能最高,更適合單臺(tái)服務(wù)器多squid進(jìn)程模式。

  5、集群下的單臺(tái)Cache失效的接管,以免單點(diǎn)故障,提高可用性。

  針對(duì)以上分析,我們大量嘗試了開(kāi)源的一些產(chǎn)品,像LVS,Nginx,Squid,XFS等。具體的軟件組合和架構(gòu)如下:

  (1)Web服務(wù)器的選擇,目前,大多數(shù)Web服務(wù)器的處理能力有限,互聯(lián)網(wǎng)廣泛上使用的Web服務(wù)器如Apache,其并發(fā)能力往往在2000以下,這是由Web服務(wù)器自身的設(shè)計(jì)模式(如多進(jìn)程,無(wú)IO緩存等)決定的。因此,在較大規(guī)模的訪問(wèn)情況下,通常會(huì)表現(xiàn)出用戶(hù)訪問(wèn)網(wǎng)站慢,Web服務(wù)器負(fù)載高。為什么選擇Nginx?use linux epoll, sendfile and aio to improve the performanc,我們主要利用的是Nginx的第三方模塊ngx_http_upstream_hash_module做反向代理。部分代碼如下:

   1. upstream img{  
2. server squid1:81;
3. server squid2:81;
4. hash $request_uri;
5. hash_again 0; # default 0
6. hash_method crc32; # default “simple”
7. }
8.
9. server {
10. listen 80;
11. server_name images.gx.com;
12. location / {
13. proxy_pass http://img;

it知識(shí)庫(kù)海量小文件導(dǎo)致高并發(fā)、大流量問(wèn)題的探討,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲综合日韩中文字幕v在线 | 88.7在线收听 | 久久精品视频免费 | 老司机午夜影院试看区 | 香蕉精品国产高清自在自线 | 国产人妻人伦精品无码.麻豆 | 欧美在线看费视频在线 | 久久超碰国产精品最新 | 色综合 亚洲 自拍 欧洲 | 国产人妻XXXX精品HD电影 | 亚洲精品在线免费 | 亚洲欧美日韩国产精品26u | 久久yy99re66| 日本免费一区二区三区最新vr | 草柳最新地址 | 日日射日日操 | 国产三级视频在线 | 草莓湿漉漉是好事还是恶性 | 亚洲人成影院在线播放 | 精品久久香蕉国产线看观看麻豆 | 538久久视频在线 | 日本大尺码喷液过程视频 | 13一18TV处流血TV | 亚洲色大成网站WWW永久麻豆 | 午夜精品久久久久久久99蜜桃 | 影音先锋av男人资源 | 欧美日韩北条麻妃一区二区 | 777久久人妻少妇嫩草AV蜜桃 | 琪琪电影午夜理论片YY6080 | 石原莉奈rbd806中文字幕 | 开心成人社区 | 99在线精品国自产拍 | 在线视频网站www色 在线视频免费国产成人 | 99视频免费看 | 免费A级毛片无码无遮挡 | 国产精品99精品无码视亚 | 精品人妻伦一二三区久久AAA片 | 亚洲国产第一 | 日韩亚洲国产中文字幕欧美 | 私人玩物在线观看 | 国产欧美无码亚洲毛片 |