自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL數(shù)據(jù)庫(kù)的優(yōu)化方案與實(shí)踐

數(shù)據(jù)庫(kù) MySQL 數(shù)據(jù)庫(kù)運(yùn)維
優(yōu)化,持久不變的話(huà)題,大家都在談,都在說(shuō),那么怎么做呢?最近一段時(shí)間,我們整理了一些關(guān)于Percona,Linux,F(xiàn)lashcache,硬件設(shè)備的優(yōu)化經(jīng)驗(yàn),分享給大家。

硬 件

1.開(kāi)啟BBWC

RAID卡都有寫(xiě)cache(Battery Backed Write Cache),寫(xiě)cache對(duì)IO性能的提升非常明顯,因?yàn)榈綦姇?huì)丟失數(shù)據(jù),所以必須由電池提供支持。電池會(huì)定期充放電,一般為90天左右,當(dāng)發(fā)現(xiàn)電量低于某個(gè)閥值時(shí),會(huì)將寫(xiě)cache策略從writeback置為writethrough,相當(dāng)于寫(xiě)cache會(huì)失效,這時(shí)如果系統(tǒng)有大量的IO操作,可能會(huì)明顯感覺(jué)到IO響應(yīng)速度變慢。目前,新的RAID卡內(nèi)置了flash存儲(chǔ),掉電后會(huì)將寫(xiě)cache的數(shù)據(jù)寫(xiě)入flash中,這樣就可以保證數(shù)據(jù)永不丟失,但依然需要電池的支持。

解決方案有兩種:

(1)人工觸發(fā)充放電,可以選擇在業(yè)務(wù)低谷時(shí)做,降低對(duì)應(yīng)用的影響。

(2)設(shè)置寫(xiě)cache策略為force write back,即使電池失效,也保持寫(xiě)cache策略為writeback,這樣存在掉電后丟失數(shù)據(jù)的風(fēng)險(xiǎn)。

目前,有一些硬件廠家提供了電容供電的RAID卡,沒(méi)有電池充放電的問(wèn)題,可以聯(lián)系自己的硬件廠商。

2.RAID卡配置

關(guān)閉讀cache:RAID卡上的cache容量有限,我們選擇direct方式讀取數(shù)據(jù),從而忽略讀cache。

關(guān)閉預(yù)讀:RAID卡的預(yù)讀功能對(duì)于隨機(jī)IO幾乎沒(méi)有任何提升,所以將預(yù)讀功能關(guān)閉。

關(guān)閉磁盤(pán)cache:一般情況下,如果使用RAID,系統(tǒng)會(huì)默認(rèn)關(guān)閉磁盤(pán)的cache,也可以用命令強(qiáng)制關(guān)閉。

以上設(shè)置都可以通過(guò)RAID卡的命令行來(lái)完成,比如LSI芯片的RAID卡使用megacli命令。

3.開(kāi)啟Fastpath功能

Fastpath是LSI的新特性,在RAID控制器為SSD做了了優(yōu)化,使用fastpath特性可以***程度發(fā)揮出SSD的能力。如果使用SSD做RAID的方式,可以開(kāi)啟fastpath功能。關(guān)于fastpath特性,可以從LSI官網(wǎng)下載資料,并咨詢(xún)自己的硬件提供商。

4.Fusionio參數(shù)調(diào)整

基本上,F(xiàn)usionio無(wú)需做任何調(diào)整,下列三個(gè)參數(shù)可能會(huì)提升性能:

options iomemory-vsl use_workqueue=0

對(duì)于fusionio設(shè)備,忽略L(fǎng)inux IO調(diào)度,相當(dāng)于使用NOOP。

options iomemory-vsl disable-msi=0

開(kāi)啟MSI中斷,如果設(shè)備支持,則打開(kāi)。

options iomemory-vsl use_large_pcie_rx_buffer=1

打開(kāi)Large PCIE buffer,可能會(huì)提升性能。

操作系統(tǒng)

1.IO調(diào)度算法

Linux有四種IO調(diào)度算法:CFQ,Deadline,Anticipatory和NOOP,CFQ是默認(rèn)的IO調(diào)度算法。完全隨機(jī)的訪(fǎng)問(wèn)環(huán)境下,CFQ與Deadline,NOOP性能差異很小,但是一旦有大的連續(xù)IO,CFQ可能會(huì)造成小IO的響應(yīng)延時(shí)增加,所以數(shù)據(jù)庫(kù)環(huán)境建議修改為deadline算法,表現(xiàn)更穩(wěn)定。我們的環(huán)境統(tǒng)一使用deadline算法。

IO調(diào)度算法都是基于磁盤(pán)設(shè)計(jì),所以減少磁頭移動(dòng)是最重要的考慮因素之一,但是使用Flash存儲(chǔ)設(shè)備之后,不再需要考慮磁頭移動(dòng)的問(wèn)題,可以使用NOOP算法。NOOP的含義就是NonOperation,意味著不會(huì)做任何的IO優(yōu)化,完全按照請(qǐng)求來(lái)FIFO的方式來(lái)處理IO。

減少預(yù)讀:/sys/block/sdb/queue/read_ahead_kb,默認(rèn)128,調(diào)整為16。

增大隊(duì)列:/sys/block/sdb/queue/nr_requests,默認(rèn)128,調(diào)整為512。

2.NUMA設(shè)置

單機(jī)單實(shí)例,建議關(guān)閉NUMA,關(guān)閉的方法有三種:

(1) 硬件層,在BIOS中設(shè)置關(guān)閉。

(2) OS內(nèi)核,啟動(dòng)時(shí)設(shè)置numa=off。

(3) 可以用numactl命令將內(nèi)存分配策略修改為interleave(交叉),有些硬件可以在BIOS中設(shè)置。

單機(jī)多實(shí)例,請(qǐng)參考:http://www.hellodb.net/2011/06/mysql_multi_instance.html

3.文件系統(tǒng)設(shè)置

我們使用XFS文件系統(tǒng),XFS有兩個(gè)設(shè)置:su(stripe size)和sw(stirpe width),要根據(jù)硬件層RAID來(lái)設(shè)置這兩個(gè)參數(shù),比如10塊盤(pán)做RAID10,條帶大小為64K,XFS設(shè)置為su=64K,sw=10。

xfs mount參數(shù):defaults,rw,noatime,nodiratime,noikeep,nobarrier,allocsize=8M,attr2,largeio,inode64,swalloc

#p#

數(shù)據(jù)庫(kù)

1.Flashcache參數(shù)

創(chuàng)建flashcache:flashcache_create -b 4k cachedev /dev/sdc /dev/sdb

指定flashcache的block大小與Percona的page大小相同。

Flashcache參數(shù)設(shè)置:

flashcache.fast_remove = 1:打開(kāi)fast remove特性,關(guān)閉機(jī)器時(shí),無(wú)需將cache中的臟塊寫(xiě)入磁盤(pán)。

flashcache.reclaim_policy = 1:臟塊刷出策略,0:FIFO,1:LRU。

flashcache.dirty_thresh_pct = 90:flashcache上每個(gè)hash set上的臟塊閥值。

flashcache.cache_all = 1:cache所有內(nèi)容,可以用黑名單過(guò)濾。

flashecache.write_merge = 1:打開(kāi)寫(xiě)入合并,提升寫(xiě)磁盤(pán)的性能。

2.Percona參數(shù)

innodb_page_size:如果使用fusionio,4K的性能***;使用SAS磁盤(pán),設(shè)置為8K。如果全表掃描很多,可以設(shè)置為16K。比較小的page size,可以提升cache的命中率。

innodb_adaptive_checkpoint:如果使用fusionio,設(shè)置為3,提高刷新頻率到0.1秒;使用SAS磁盤(pán),設(shè)置為2,采用estimate方式刷新臟頁(yè)。

innodb_io_capacity:根據(jù)IOPS能力設(shè)置,使用fuionio可以設(shè)置10000以上。

innodb_flush_neighbor_pages = 0:針對(duì)fusionio或者SSD,因?yàn)殡S機(jī)IO足夠好,所以關(guān)閉此功能。

innodb_flush_method=ALL_O_DaIRECT:公版的MySQL只能將數(shù)據(jù)庫(kù)文件讀寫(xiě)設(shè)置為DirectIO,對(duì)于Percona可以將log和數(shù)據(jù)文件設(shè)置為direct方式讀寫(xiě)。但是我不確定這個(gè)參數(shù)對(duì)于innodb_flush_log_at_trx_commit的影響。

innodb_read_io_threads = 1:設(shè)置預(yù)讀線(xiàn)程設(shè)置為1,因?yàn)榫€(xiàn)性預(yù)讀的效果并不明顯,所以無(wú)需設(shè)置更大。

innodb_write_io_threads = 16:設(shè)置寫(xiě)線(xiàn)程數(shù)量為16,提升寫(xiě)的能力。

innodb_fast_checksum = 1:開(kāi)啟Fast checksum特性。

監(jiān) 控

1.fusionio監(jiān)控:fio-status命令

Media status: Healthy; Reserves: 100.00%, warn at 10.00%

Thresholds: write-reduced: 96.00%, read-only: 94.00%

Lifetime data volumes:

Logical bytes written : 2,664,888,862,208

Logical bytes read : 171,877,629,608,448

Physical bytes written: 27,665,550,363,560

Physical bytes read : 223,382,659,085,448

2.flashcache監(jiān)控:dmsetup status

read hit percent(99)

write hit percent(51)

dirty write hit percent(44)

【編輯推薦】

  1. MySQL中創(chuàng)建及優(yōu)化索引組織結(jié)構(gòu)的思路
  2. 微博 請(qǐng)問(wèn)你是怎么優(yōu)化數(shù)據(jù)庫(kù)的?
  3. MySQL技巧:結(jié)合相關(guān)參數(shù) 做好Limit優(yōu)化
  4. MySQL數(shù)據(jù)庫(kù)的優(yōu)化(下)MySQL數(shù)據(jù)庫(kù)的高可用架構(gòu)方案
  5. MySQL數(shù)據(jù)庫(kù)的優(yōu)化(上)單機(jī)MySQL數(shù)據(jù)庫(kù)的優(yōu)化
責(zé)任編輯:艾婧 來(lái)源: hellodb.net
相關(guān)推薦

2011-07-06 14:12:20

MySQLPercona

2010-02-01 10:10:41

Oracle數(shù)據(jù)庫(kù)優(yōu)化

2010-05-21 14:01:23

MySQL數(shù)據(jù)庫(kù)

2010-06-04 11:28:05

MySQL數(shù)據(jù)庫(kù)

2011-03-09 08:53:02

MySQL優(yōu)化集群

2011-03-08 08:49:55

MySQL優(yōu)化單機(jī)

2010-05-13 10:47:44

MySQL數(shù)據(jù)庫(kù)查詢(xún)

2010-06-10 10:15:50

MySQL數(shù)據(jù)庫(kù)查詢(xún)

2010-05-21 13:48:36

MySQL數(shù)據(jù)庫(kù)

2010-05-31 16:17:56

MySQL數(shù)據(jù)庫(kù)性能

2010-06-02 13:58:30

MySQL數(shù)據(jù)庫(kù)性能

2011-03-03 17:56:52

MySQL數(shù)據(jù)庫(kù)優(yōu)化

2010-05-20 18:12:37

MySQL數(shù)據(jù)庫(kù)查詢(xún)

2020-10-15 09:10:02

MySQL性能優(yōu)化

2010-06-17 09:15:02

MySQL數(shù)據(jù)庫(kù)查詢(xún)

2010-06-11 12:32:57

MySQL數(shù)據(jù)庫(kù)查詢(xún)

2010-05-28 09:15:50

配置MySQL

2014-07-18 09:33:53

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)優(yōu)化

2010-06-01 14:42:55

連接MySQL數(shù)據(jù)庫(kù)

2013-01-04 10:00:12

MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化
點(diǎn)贊
收藏

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