亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 4770 | 回復(fù): 1
打印 上一主題 下一主題

Linux 下 Mysql 數(shù)據(jù)庫(kù)性能調(diào)優(yōu)技巧 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-02-23 18:34 |只看該作者 |倒序?yàn)g覽

Linux 下 Mysql 數(shù)據(jù)庫(kù)性能調(diào)優(yōu)技巧
時(shí)間:2009-09-03 09:48來(lái)源:網(wǎng)絡(luò)收集 作者:佚名 點(diǎn)擊:
133 次
技術(shù)論壇

硬件準(zhǔn)備環(huán)境: 硬盤: 16塊 SAS 15K RAID5 帶512MCache CPU: AMD 4核兩顆 內(nèi)存: 16G 軟件環(huán)境: 操作系統(tǒng): RedHat AS4.6 2.6.9-67.ELsmp Mysql: 5.0 下面分別根據(jù)不同場(chǎng)景進(jìn)行性能調(diào)優(yōu): 使用場(chǎng)景A: 寫操作(插入/查詢/刪除)密集,而且數(shù)據(jù)容量遠(yuǎn)遠(yuǎn)超
硬件準(zhǔn)備環(huán)境:
              硬盤: 16塊 SAS 15K RAID5 帶512MCache
              CPU:    AMD 4核兩顆
              內(nèi)存: 16G
       軟件環(huán)境:
              操作系統(tǒng): RedHat AS4.6 2.6.9-67.ELsmp
              Mysql: 5.0
       下面分別根據(jù)不同場(chǎng)景進(jìn)行性能調(diào)優(yōu):
使用場(chǎng)景A:
              寫操作(插入/查詢/刪除)密集,而且數(shù)據(jù)容量遠(yuǎn)遠(yuǎn)超過(guò)內(nèi)存的大小(最小是200G以上,甚至更大到1.5T以上), 每秒需要以千為單位的事務(wù)操作
              數(shù)據(jù)可靠性要求不高,允許丟幾條記錄(硬件出故障時(shí))
       優(yōu)化方式:
              在這種情況下,數(shù)據(jù)庫(kù)的Cache基本上命中率是非常低的,對(duì)數(shù)據(jù)庫(kù)的操作基本上就是對(duì)磁盤進(jìn)行操作, 因此側(cè)重點(diǎn)應(yīng)該是對(duì)磁盤相關(guān)優(yōu)化。
              首先是考慮數(shù)據(jù)庫(kù)存儲(chǔ)引擎,由于涉及插入/刪除/查詢等操作,而且要支持事務(wù),因此考慮使用InnoDB存儲(chǔ)引擎,不考慮MyIsam原因是該存儲(chǔ)引擎是表級(jí)鎖,有數(shù)據(jù)刪除時(shí)會(huì)非常慢。
              設(shè)置合適的Mysql 參數(shù),由于有16G內(nèi)存,因此參數(shù)設(shè)置如下
innodb_buffer_pool_size=8G
innodb_additional_mem_pool_size = 800M,
innodb_log_buffer_size = 4M
innodb_log_file_size = 500M
innodb_log_files_in_group = 4
log-bin
              因?yàn)槭褂弥鱾鋸?fù)制,因此需要打開(kāi)Log-Bin,這里就涉及一個(gè)sync-bin的概念,缺省情況下,sync-bin 在mysql中是關(guān)閉的,但存在一個(gè)風(fēng)險(xiǎn),因?yàn)閷懭罩緵](méi)有刷新到硬盤中去的話,日志是寫在操作系統(tǒng)的文件系統(tǒng)里的Cache中,這樣若機(jī)器斷電,那么日志信息將部分丟失。為了減少數(shù)據(jù)丟失,我們測(cè)試了sync-bin=1,sync-bin=5和sync-bin=20,三種情況,sync-bin=1的情況下,丟失數(shù)據(jù)最壞概率是丟一個(gè)事務(wù)的數(shù)據(jù),但性能非常差;設(shè)置sync-bin=5的情況下,性能可以提高1倍左右;設(shè)置sync-bin=20時(shí),性能比sync-bin=5又可以提高1倍,設(shè)置大于20的值,基本上相差不大,性能提高不了多少,最壞20個(gè)事務(wù)數(shù)據(jù)丟失是在我們的允許范圍之內(nèi),因此設(shè)置20是個(gè)合理的值,這個(gè)值具體取決于你的系統(tǒng)能夠最壞允許丟少的事務(wù)數(shù)據(jù)。
              若你的系統(tǒng)對(duì)數(shù)據(jù)丟失不于考慮,可以關(guān)閉sync-bin,這時(shí)數(shù)據(jù)刷新到硬盤完全取決于操作系統(tǒng)的配置,相關(guān)的配置參數(shù)有如下:
       /proc/sys/vm/dirty_ratio
       這 個(gè)參數(shù)控制一個(gè)進(jìn)程在文件系統(tǒng)中的文件系統(tǒng)寫緩沖區(qū)的大小,單位是百分比,表示系統(tǒng)內(nèi)存的百分比,表示當(dāng)一個(gè)進(jìn)程中寫緩沖使用到系統(tǒng)內(nèi)存多少的時(shí)候,再有 磁盤寫操作時(shí)開(kāi)始向磁盤寫出數(shù)據(jù)。增大之會(huì)使用更多系統(tǒng)內(nèi)存用于磁盤寫緩沖,也可以極大提高系統(tǒng)的寫性能。但是,當(dāng)你需要持續(xù)、恒定的寫入場(chǎng)合時(shí),應(yīng)該降 低其數(shù)值,一般缺省是 40。更新方法
        echo 30 >/proc/sys/vm/dirty_ratio (或則修改/etc/sysctl.conf文件,增加sys.vm.dirty_ratio=30 重起機(jī)器)
       /proc/sys/vm/dirty_background_ratio
       這個(gè)參數(shù)控制文件系統(tǒng)的pdflush進(jìn)程,在何時(shí)刷新磁盤。單位是百分比,表示系統(tǒng)總內(nèi)存的百分比,意思是當(dāng)磁盤的臟數(shù)據(jù)緩沖到系統(tǒng)內(nèi)存多少的時(shí)候,pdflush開(kāi)始把臟數(shù)據(jù)刷新到磁盤。增大會(huì)使用更多系統(tǒng)內(nèi)存用于磁盤寫緩沖,也可以極大提高系統(tǒng)的寫性能。但是,當(dāng)你需要持續(xù)、恒定的寫入場(chǎng)合時(shí),應(yīng)該降低其數(shù)值,一般缺省是10。
      /proc/sys/vm/dirty_writeback_centisecs
       Pdflush寫后臺(tái)進(jìn)程每隔多久被喚醒并執(zhí)行把臟數(shù)據(jù)寫出到硬盤。單位是 1/100 秒。缺省數(shù)值是500,也就是 5 秒。如果你的系統(tǒng)是持續(xù)地寫入動(dòng)作,那么實(shí)際上還是降低這個(gè)數(shù)值比較好,這樣可以把尖峰的寫操作削平成多次寫操作。設(shè)置方法如下:
       echo 200 >/proc/sys/vm/dirty_writeback_centisecs
       /proc/sys/vm/dirty_expire_centisecs
       這個(gè)參數(shù)聲明Linux內(nèi)核寫緩沖區(qū)里面的臟數(shù)據(jù)多“舊”了之后,pdflush進(jìn)程就開(kāi)始考慮寫到磁盤中去。單位是 1/100秒。缺省是 30000,也就是 30 秒的數(shù)據(jù)就算舊了,將會(huì)刷新磁盤。對(duì)于特別重載的寫操作來(lái)說(shuō),這個(gè)值適當(dāng)縮小也是好的,但也不能縮小太多,因?yàn)榭s小太多也會(huì)導(dǎo)致IO提高太快。建議設(shè)置為 1500,也就是15秒算舊。
       echo 1500 >/proc/sys/vm/ dirty_expire_centisecs
因此若沒(méi)有調(diào)整這些參數(shù),全部以缺省值,而且關(guān)閉sync-bin的話,那么最多丟失的數(shù)據(jù)是:
       5秒種(dirty_writeback_centisecs)之內(nèi)的,小于1.6G的數(shù)據(jù)(dirty_background_ratio,16G/10=1.6G)
       當(dāng)然,實(shí)際上5秒之內(nèi)不太可能寫1.6G的數(shù)據(jù),因此最壞就是5秒鐘之內(nèi)的數(shù)據(jù)丟失。因此若要關(guān)閉sync-bin,又不想丟失太多數(shù)據(jù)的話,可以通過(guò)調(diào)整dirty_writeback_centisecs這個(gè)參數(shù),如調(diào)整到200(2秒),這樣最多就丟2秒鐘的數(shù)據(jù)。又可以提高數(shù)據(jù)的寫能力。
       Mysql里還有一個(gè)參數(shù)可以調(diào)整,提高數(shù)據(jù)庫(kù)的寫能力,那就是
innodb_flush_log_at_trx_commit
這個(gè)參數(shù)默認(rèn)是1,即每次事務(wù)Commit時(shí),都刷新日志,以免數(shù)據(jù)丟失。因?yàn)槲覀兊南到y(tǒng)允許丟失少量數(shù)據(jù),因此可以把innodb_flush_log_at_trx_commit設(shè)置為2,允許丟失一個(gè)事務(wù)的數(shù)據(jù),經(jīng)測(cè)試,發(fā)現(xiàn)2可以提高25%左右的性能。
另外對(duì)于文件系統(tǒng)的mount方式,noatime方式也可以提高部分性能(數(shù)據(jù)庫(kù)專用的服務(wù)器,一般是noatime)
當(dāng)數(shù)據(jù)有刪除更新操作后,時(shí)間長(zhǎng)后一般有碎片,導(dǎo)致索引空間不緊湊,占用更多的硬盤空間,因此會(huì)導(dǎo)致查詢編碼,解決辦法是定期執(zhí)行下面的語(yǔ)句:
ALTER TABLE tbl_name ENGINE=INNODB
另外若sql語(yǔ)句中有sort 和group by之類,需要增大sort_buffer_size
這個(gè)參數(shù) 是每客戶端連接的,當(dāng)有sort/group查詢時(shí),會(huì)分配sort_buffer_size大小的內(nèi)存,因此若連接很多,則要小心;合適的值可以查看 SHOW GLOBAL STATUS里面Sort_merge_passes的信息以及Created_tmp_tables之類信息


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u3/111930/showart_2185366.html

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-03-09 16:47 |只看該作者
很實(shí)用的文章,支持
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP