您好!欢迎光临赵容部落O(∩_∩)O~
时间:2012年7月1日 栏目:VPS教程 作者:赵 容 点击: 16,326 次
最近看到不少反应MySQL拖垮服务器资源的一些讨论,尤其是很多的个人博客站长采用wordpress源码,连发个评论都要写入MySQL数据库。虽然我无法从根本上解决这些问题,但是对于MySQL做一些简单的优化还是非常有必要的,下面,我们就以DirectAdmin面板下的MySQL优化为例来做一个简单的记录。
关于本文的MySQL优化,我把他分为2个部分来做,包括升级TCMalloc以及修改MySQL配置文件。
★★★安装TCMalloc★★★
首先,我们来关注下如何安装TCMalloc来优化mysql在高负载下的表现。首先,root登陆服务器。因为我的服务器采用64位的Centos,所以,需要先安装libunwind库,32位系统可略过此步。
wget http:
//download.savannah.gnu.org/releases/libunwind/libunwind-0.99-alpha.tar.gz
tar zxvf libunwind-0.99-alpha.tar.gz
cd libunwind-0.99-alpha/
CFLAGS=-fPIC ./configure
make CFLAGS=-fPIC
make CFLAGS=-fPIC install
接下来,我们开始安装Tcmalloc。
wget http:
//gperftools.googlecode.com/files/gperftools-2.0.tar.gz
tar zxvf gperftools-2.0.tar.gz
cd gperftools-2.0/
./configure
make && make install
echo
“/usr/local/lib” > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
编译完成后,我们编辑mysqld_safe文件,加入Tcmalloc部分。
vi /usr/bin/mysqld_safe
找到# executing mysqld_safe,在下面加入:
export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
保存,退出,重启MySQL。
service mysqld restart
接下来再检查是否生效,运行。
lsof -n | grep tcmalloc
若看到类似如下内容,即表示成功。
mysqld 7758 mysql mem REG 253,0 1943001 109233156 /usr/local/lib/libtcmalloc.so.4.1.0
★★★修改配置文件★★★
DirectAdmin默认的MySQL配置文件非常的简洁。
[mysqld] local-infile=0
我们需要修改配置文件,参考下面的内容(vim /etc/my.cnf)
[mysqld]
local-infile=0skip-locking
query_cache_limit=1M
query_cache_size=32M
query_cache_type=1
max_connections=500
interactive_timeout=100
wait_timeout=100
connect_timeout=10
thread_cache_size=128
key_buffer=16M
join_buffer=1M
max_allowed_packet=16M
table_cache=1024
record_buffer=1M
sort_buffer_size=2M
read_buffer_size=2M
max_connect_errors=10
# Try number of CPU's*2 for thread_concurrency
thread_concurrency=4
myisam_sort_buffer_size=64Mserver-id=1
[safe_mysqld]err-log=/var/log/mysqld.log
open_files_limit=8192
[mysqldump]quick
max_allowed_packet=16M
[mysql]no-auto-rehash
#safe-updates
[isamchk]key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M
[myisamchk]key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M
[mysqlhotcopy]interactive-timeout
以上配置内容来自DirectAdmin官方帮助中心(http://help.directadmin.com/item.php?id=44),大家请根据自己的情况自行修改参数。
完成后保存,退出,重启MySQL。
/sbin/service mysqld restart
OK,做完以上的两个方面的优化后,相信您的MySQL在高负载下的表现会大大提高了。
标签: DirectAdmin , MySQL优化 , TCMalloc
声明: 博客仅为分享信息绝非推荐,网站不参与交易绝非中介,内容均仅代表个人观点绝非权威,读者请自行考虑后入手并自担风险!一分钱一分货仍是恒久不变之真理,未成年读者(包括生理和心理)请在监护人陪同下访问本站!本文由( 赵 容 )原创编译,转载请保留链接: DirectAdmin优化MySQL性能(升级TCMalloc及修改配置)码字不易,谢绝复制粘贴! 关于使用: 本站主要分享服务器及VPS信息,不提供任何产品销售及代购,所有访客朋友请在国家法律法规许可范围内购买和使用产品,QQ群讨论:683851361. 关于安全: 任何IDC都有倒闭和跑路的可能,主机线路更不可控,月付和备份是您的最佳选择,请保持良好的、有规则的备份习惯.
❓ 为什么我另外2台主机可以配置这个,另外一台配置不起来,从启MYSQL报错,我都以及配置了N次了,和另外2台一样,就是启动不起来
2014-10-01 16:38#service mysqld restart
Shutting down MySQL. SUCCESS!
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/cccc.cccc.pid).
1.4.5 版本的 DA /etc 下面怎么没 my.cnf 只有my.cnf.old 。。 貌似里面的配没什么用
2014-06-12 13:14h ttp://tiger.im/297.html
参考这个搞定,我的是5.0,升级5.1后搞定
2013-12-20 23:18每个人配置的环境、组件版本都可能有差异,教程是死的人是活的,必须根据自己的情况修正。
2013-12-20 23:22晕死了,我安装了好几次,都没有成功,centos 5.1
[root@server gperftools-2.0]# lsof -n | grep tcmalloc
[root@server gperftools-2.0]#
conf文件我都检查过,对着呢,郁闷
2013-12-20 18:10echo “/usr/local/lib” > /etc/ld.so.conf.d/usr_local_lib.conf
这一行是干嘛的呢?
2013-12-20 14:19写入一行到文件中
2013-12-20 17:44写完后那一行应该是 /usr/local/lib
2013-12-20 17:47并且conf文件里没有引号吧
lsof -n | grep tcmalloc 这个执行完没有出现你说的那个东东
[root@server gperftools-2.0]# lsof -n | grep tcmalloc
2013-12-20 14:08[root@server gperftools-2.0]#
这说明没有安装成功。
2013-12-20 14:12装了Tcmalloc,数据库都启动不了,还好有备份,真是虚惊一场。
2013-01-05 10:43请问如何卸载Tcmalloc,我是菜鸟,谢谢
编辑mysqld_safe把Tcmalloc去掉应该可以的。
2013-01-05 10:52不过,这个我在不同的服务器上装了很多次,没有一次失败的,更别说不能启动数据库了。。。你这也太悲剧了啊
你好,在第二步,我没有my.cnf这个文件,但有两个类似的文件my.cnf.old,my.cnf.rpmsave,请问我该修改哪个?谢谢
2013-01-05 11:26可直接自行建立一个
2013-01-05 11:43ERROR! The server quit without updating PID file. 重启数据库出错了,该怎么办啊,非常感谢
2013-01-05 11:56修改my.cnf文件,配置文件错,或者清理日志,或者google相关的报错信息。
2013-01-05 12:12已经解决,谢谢。数据库版本不同,参考/usr/share/mysql/my*.cnf 这些个文件,选一个自己服务器适合的,复制过去。
2013-01-05 12:37用你的方法成功了,折腾了好久,结果随便找一个复制过去就Ok了
2013-05-02 07:51服务器一般默认没有安装的吗?
2012-07-08 03:28服务器默认一般安装了一个操作系统。
2012-07-08 07:59MySQL5.5配置文件和5.1相比有些参数变了,比如skip-locking现在是skip-external-locking。而且它很坑爹的连自己自带的那个小内存配置文件里这些东西都没改……我上次直接用my-small.cnf结果直接启动不起来……最后自己加上skip-innodb就不管了
如果担心评论耗资源可以考虑第三方的评论服务,比如Disgus和国内好像叫多说还是什么的来着。
2012-07-02 08:31是的,本文所述为MySQL5.1的版本下的~
2012-07-02 08:31😎 收藏 备用
2012-07-01 17:45谢谢这么好的文章,收下了。直接COPY
2012-07-01 16:08