現在SSD硬碟可以拿來跑資料庫嗎?

55G 2000QPS不能算是大型資料庫,
資料量算中小型,
QPS 2000~3200這比較麻煩,
看起來用mysql

初步看起來硬體規劃有問題,
先去找出有幾個頻繁讀寫,
有幾個不修改,只有寫入的TABLE,分好類,

你們的controller*2有AA MODE嗎?
16顆看起來插滿一個,
理論上至少可以再擴充一組,
想辦法把RAID重做,
raid0+raid6,做不同的lun
把IO高的平均放在不同的lun
LOG、view count、page count、AD count、留言版本這些換台DB來放,
留言內容mirroring 到別台DB,讀取一率由另N台DB讀取
forumtopic.php?c=XX&p=1 前三頁每分鐘產生一個檔案,不要進DB讀取,
過來問題比較大的搜尋也去mirror找

最後講些心理的話但是不好聽,
銀行、保險、工廠這些的資料量遠超過01,
它們給高手的薪水至少年薪百萬起跳,
貴公司的規模要找到DBA高手、專門寫高效能程式的人很困難,
之前你們公司找人的薪水也被攻擊過,
建議你們找SI廠商搞定比較適合,或者找願意用下班時間免費協助貴公司的高手比較實際。
綠手指

tcc7 wrote:
最後講些心理的話但是不好聽,
銀行、保險、工廠這些的資料量遠超過01,
它們給高手的薪水至少年薪百萬起跳,
貴公司的規模要找到DBA高手、專門寫高效能程式的人很困難,
之前你們公司找人的薪水也被攻擊過,
建議你們找SI廠商搞定比較適合,或者找願意用下班時間免費協助貴公司的高手比較實際。(恕刪)

我蠻好奇那邊有討論01的薪資? 可以告訴我嗎? 不方便公開私下PM我也可以
請多多點擊贊助商廣告,有贊助商的支持才有穩定的Server和快速頻寬。
carl77830 wrote:
這樣如果突然掛掉,資...(恕刪)

replication 到其他真的有硬碟的機器上就好了
我是覺得MySQL Cluster不用考慮
join效能可能還是會有問題,門檻高,維護起來麻煩
相較之下 XtraDB cluster 或許比較適合

nosql用來存log之類的資訊可以考慮,如果這類的資料量很大的話,其他一般結構性的資料就不用考慮了。


論壇的話個人是認為讀寫大概就差不多9:1,不過這個可以用工具測出來,我想讀取的比例應該還是大很多

提昇效能就分兩種,一個是scale up,另一種是scale out
scale up就是升級主機,使用SSD之類的,但是總會有個極限在。
scale out就是用cluster(or master/slave)的架構下去擴充,因為讀取的比例應該比較高,所以我想像一般的mysql master/slave機制應該會有一定效能的提昇,或是就採用XtraDB cluster也OK,我記得KKBOX他們production用的就是XtraDB cluster。

chiang wrote:
非常謝謝大家的熱心回答,網友提供的很多方式我們都已經嘗試過,甚至也已經在用了,可能是我們能力遇到瓶頸吧,我們會再努力試著調整跟解決看看

我們目前的情況大概是55GBdatabase,16顆73GB SAS 15000轉硬碟 RAID 6,ext3檔案格式,64GB memory cache,每日增加約30MB,QPS平均2000高的話大概是3200


55G 的 DB 比想像中的小,static files 很早以前就被拉出來單獨 host,不考慮 blob 的問題

每日增加 30MB,db write 不兇,用 RAID 6 也撐得下去


QPS avg. 2000, max 3200...

調 cache 吧.. memcache 加個 128GB 下去,調整 cache 機制,url wildcard and timeout

再來就是把讀寫比較頻繁的 table 做 partition,畢竟論壇的流量重於每日熱門文章,數日之前的文章讀取的機率小很多


不用換 SSD,不用重建 DB,一樣能解決 mobile01 的問題


-
沒有 performance data 就在提 solution 真的很妙...
http://kivava.blogspot.com
SSD的話....不建議

畢竟

1.SSD有流量限制(超過了,硬碟幾乎等於掛了)
2.壞了很麻煩

尤其是在01這種大型論壇,一天存取資料庫的流量應該至少好幾G(甚至更多),這樣SSD一定會很快就操褂

如果真要的話,建議弄Server用的萬轉硬碟+Raid,必要時多用幾台Server搞負載平衡
一般的網站,都是

讀取量 >> 寫入量

使用SSD之類的去加速單一台,當網站長大遲早有一天也是會再卡到,不太清楚mobile01用的資料庫是什麼,如果是MySQL的話個人有點經驗可以分享,我個人的建議是採取 "讀寫分離" 的策略

例如可以配置像這樣

Master (for writing)
Slave 1 (for reading)
Slave 2 (for reading)
Slave 3 (for reading)
...

當有要寫入時 (包括寫入時需要的相關讀取),連到 master 去,而整系列的 slave 都是 replication 出來的,只供讀取,這樣一來雖然說從寫入到讀取之間會有一小段 delay ,但是大量的讀取被散到所有 slave 上了,靠的是犧牲一點點一致性,只要再加機器整體的承載就能提升,除非寫入也變成瓶頸,那就麻煩了,可能得做 sharding (切片,也就是把一張table拆成好幾個實體的db放) ,會變得非常複雜

而讀取的部份,如果用讀寫分離,有一種做法是前面掛一台 proxy ,用query的內容決定要重導到哪個server (master or slave),記得有看過專案是這樣做的,我自己是沒用過,而另一種做法是修改程式,這是比較好的方法,因為清楚知道程式的意圖,在哪些地方要連master,哪些要連slave都可以很仔細去規劃,我自己的經驗是使用上面配置搭配程式去自行決定哪些頁面要連 slave,哪些要連master

如果把考高可得性的問題也考慮進來,master 一台的配置可以改為三台,做Percona XtraDB Cluster

Master A (for writing)
Master B (for writing)
Master C (for writing)
Slave A 1 (for reading)
Slave A 2 (for reading)
Slave A 3 (for reading)
...
Slave B 1 (for reading)
Slave B 2 (for reading)
Slave B 3 (for reading)
...
Slave C 1 (for reading)
Slave C 2 (for reading)
Slave C 3 (for reading)
...

這樣子配置,寫入是都到master A B C三台任一台,Percona XtraDB Cluter有一台掛掉其它的還是可以繼續運作,搭配ip fallback,有寫入都會自動同步,這樣一來讀取由salve負責,寫入由master,可以同時達成高可得和讀取的擴展性

資料庫的部份我不算太專業,只是有待過百萬會員的社群網站公司,和自己做過一些網站,如果要諮詢的話 (假設是MySQL),英文溝通也沒問題的話,推薦可以找

Percona

這家問看看

還有這本 High Performance MySQL也蠻經典的,建議可以參考看看


希望會有些幫助 :P
裝 Fusion IO 啦! IOPS 破百萬,本站再大 100 倍都夠用了。

http://www.ithome.com.tw/itadm/article.php?c=72973


avhacker wrote:
裝 Fusion I...(恕刪)


這種卡片快是很快,但是要是卡片掛了的話,有什麼保護機制可以讓服務繼續運作?
bugger763 wrote:
這種卡片快是很快,但是要是卡片掛了的話,有什麼保護機制可以讓服務繼續運作?


這種就是pcie規格的SSD

而你的這個問題就如同一般SATA3的SSD掛了,要怎麼辦

一樣的問題

資料不因為存放的介面、材質不同,而可以不備份、不遺失
要資料完整且能快速恢復運作,就是"勤備份"

再者,機房如果有照規定走,應該定期會做一次演練,對於這樣的問題在上線運作前就會預想到這問題
關閉廣告
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 10)

今日熱門文章 網友點擊推薦!