仓酷云
标题:
来看看:Linux下MySQL数据库功能调优办法
[打印本页]
作者:
山那边是海
时间:
2015-1-16 11:40
标题:
来看看:Linux下MySQL数据库功能调优办法
功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。
以下的情况具有必定的代表性,能够说是中小企业一样平常设置和事情情况。但愿经由过程本文能让人人了解Linux下MySQL数据库功能调优办法。
硬件筹办情况:
硬盘:16块SAS15KRAID5带512MCache
CPU:AMD4核两颗
内存:16G
软件情况:
操纵体系:RedHatAS4.62.6.9-67.ELsmpMySQL:5.0
上面分离依据分歧场景举行功能调优:
利用场景A:写操纵(拔出/查询/删除)麋集,并且数据容量远远超硬件筹办情况:
硬盘:16块SAS15KRAID5带512MCache
CPU:AMD4核两颗
内存:16G
软件情况
操纵体系:RedHatAS4.62.6.9-67.ELsmp
MySQL:5.0
上面分离依据分歧场景举行功能调优:
利用场景A:
写操纵(拔出/查询/删除)麋集,并且数据容量远远凌驾内存的巨细(最小是200G以上,乃至更年夜到1.5T以上),每秒必要以千为单元的事件操纵
数据牢靠性请求不高,同意丢几笔记录(硬件出妨碍时)
优化体例:
在这类情形下,数据库的Cache基础上射中率长短常低的,对数据库的操纵基础上就是对磁盘举行操纵,因而偏重点应当是对磁盘相干优化。
起首是思索数据库存储引擎,因为触及拔出/删除/查询等操纵,并且要撑持事件,因而思索利用InnoDB存储引擎,不思索MyIsam缘故原由是该存储引擎是表级锁,无数据删除时会十分慢。
设置符合的MySQL参数,因为有16G内存,因而参数设置以下
innodb_buffer_pool_size=8Ginnodb_additional_mem_pool_size=800M,innodb_log_buffer_size=4Minnodb_log_file_size=500Minnodb_log_files_in_group=4log-bin由于利用主备复制,因而必要翻开Log-Bin,这里就触及一个sync-bin的观点,缺省情形下,sync-bin在MySQL中是封闭的,但存在一个风险,由于写日记没有革新到硬盘中往的话,日记是写在操纵体系的文件体系里的Cache中,如许若呆板断电,那末日记信息将部分丧失。为了削减数据丧失,我们测试了sync-bin=1,sync-bin=5和sync-bin=20,三种情形,sync-bin=1的情形下,丧失数据最坏几率是丢一个事件的数据,但功能十分差;设置sync-bin=5的情形下,功能能够进步1倍摆布;设置sync-bin=20时,功能比sync-bin=5又能够进步1倍,设置年夜于20的值,基础上相差不年夜,功能进步不了几,最坏20个事件数据丧失是在我们的同意局限以内,因而设置20是个公道的值,这个值详细取决于你的体系可以最坏同意丢少的事件数据。
若你的体系对数据丧失不于思索,能够封闭sync-bin,这时候数据革新到硬盘完整取决于操纵体系的设置,相干的设置参数有以下:
/proc/sys/vm/dirty_ratio这个参数把持一个历程在文件体系中的文件体系写缓冲区的巨细,单元是百分比,暗示体系内存的百分比,暗示当一个历程中写缓冲利用到体系内存几的时分,再有磁盘写操纵时入手下手向磁盘写出数据。增年夜之会利用更多体系内存用于磁盘写缓冲,也能够极年夜进步体系的写功能。可是,当你必要延续、恒定的写进场所时,应当降低其数值,一样平常缺省是40。更新办法
echo30>/proc/sys/vm/dirty_ratio(或则修正/etc/sysctl.conf文件,增添sys.vm.dirty_ratio=30重起呆板)
/proc/sys/vm/dirty_background_ratio这个参数把持文件体系的pdflush历程,在什么时候革新磁盘。单元是百分比,暗示体系总内存的百分比,意义是当磁盘的脏数据缓冲到体系内存几的时分,pdflush入手下手把脏数据革新到磁盘。增年夜会利用更多体系内存用于磁盘写缓冲,也能够极年夜进步体系的写功能。可是,当你必要延续、恒定的写进场所时,应当下降其数值,一样平常缺省是10。
/proc/sys/vm/dirty_writeback_centisecsPdflush写背景历程每隔多久被叫醒并实行把脏数据写出到硬盘。单元是1/100秒。缺省数值是500,也就是5秒。假如你的体系是延续地写进举措,那末实践上仍是下降这个数值对照好,如许能够把尖峰的写操纵削平成屡次写操纵。设置办法以下:
echo200>/proc/sys/vm/dirty_writeback_centisecs/proc/sys/vm/dirty_expire_centisecs这个参数声明Linux内核写缓冲区内里的脏数据多“旧”了以后,pdflush历程就入手下手思索写到磁盘中往。单元是1/100秒。缺省是30000,也就是30秒的数据就算旧了,将会革新磁盘。关于出格重载的写操纵来讲,这个值得当减少也是好的,但也不克不及减少太多,由于减少太多也会招致IO进步太快。倡议设置为1500,也就是15秒算旧。
echo1500>/proc/sys/vm/dirty_expire_centisecs因而若没有调剂这些参数,全体以缺省值,并且封闭sync-bin的话,那末最多丧失的数据是:
5秒种(dirty_writeback_centisecs)以内的,小于1.6G的数据(dirty_background_ratio,16G/10=1.6G)
固然,实践上5秒以内不太大概写1.6G的数据,因而最坏就是5秒钟以内的数据丧失。因而若要封闭sync-bin,又不想丧失太多半据的话,能够经由过程调剂dirty_writeback_centisecs这个参数,如调剂到200(2秒),如许最多就丢2秒钟的数据。又能够进步数据的写才能。
MySQL里另有一个参数能够调剂,进步数据库的写才能,那就是
innodb_flush_log_at_trx_commit这个参数默许是1,即每次事件Commit时,都革新日记,以避免数据丧失。由于我们的体系同意丧失大批数据,因而能够把innodb_flush_log_at_trx_commit设置为2,同意丧失一个事件的数据,经测试,发明2能够进步25%左
12下一页
要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期。
作者:
简单生活
时间:
2015-1-21 10:59
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
作者:
莫相离
时间:
2015-1-30 16:19
当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
作者:
admin
时间:
2015-2-6 14:03
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
作者:
小女巫
时间:
2015-2-16 10:10
选择交流平台,如QQ群,网站论坛等。
作者:
仓酷云
时间:
2015-3-5 05:52
你需要提供精确有效的信息。Linux这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。
作者:
不帅
时间:
2015-3-11 23:56
我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
作者:
老尸
时间:
2015-3-19 17:11
随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).
作者:
海妖
时间:
2015-3-29 20:05
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2