Posts Tagged mysql

mysql在不同操作系统下的性能

网上有很多关于硬件的测评,前不久,我找到了不同操作系统下Mysql的测评,比较有趣。不过讲老实话,由于我刚刚经历了数月的mysql折磨—传说中mysql的极限竟然被我遇上了(话外音:应该买彩票)。我现在似乎已经不太敢用mysql做项目了。

操作系统:
    gentoo (kernel 2.4.28)
    gentoo (kernel 2.6.10)
    NetBSD 2.0
    FreeBSD 5.3 KSE
    FreeBSD 5.3 LT
    FreeBSD 4.11 (libc_r)
    FreeBSD 4.11 LT
    OpenBSD 3.6
    Solaris 10 (b69)

Super Smack 1.2测试1,2cpu下的SELECT-KEY和UPDATE-KEY的效能:

命令:
super-smack /usr/share/smacks/select-key.smack 10 10000

super-smack /usr/share/smacks/update-select.smack 10 10000

v2graphs_1-CPU-select-key.gif
v2graphs_2-CPU-select-key.gif
v2graphs_1-CPU-update-select.gif
v2graphs_2-CPU-update-select.gif

SysBench 0.3.1 1M 的数据Rows测试数据库性能,同样也是1,2CPU的资料:

命令:
To setup:

sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=1000000 prepare

To run:

sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=1000000 run

To cleanup:

sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=1000000 cleanup

10M Rows:

To setup:

sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=10000000 prepare

To run:

sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=10000000 run

To cleanup:

sysbench –num-threads=10 –test=oltp –mysql-host=172.16.3.7 –mysql-user=root –mysql-password=mysql –oltp-table-size=10000000 cleanup


v2graphs_1-CPU-1M-rows.gif
v2graphs_2-CPU-1M-Rows.gif

同上,只是 10M 的Row

v2graphs_1-CPU-10M-Rows.gif
v2graphs_2-CPU-10M-Rows.gif

Super Smack的综合

v2graphs-Delta-Super-Smack.gif

SysBench 的综合:


v2graphs_Delta-1M-Rows.gif
v2graphs_Detla-10M-Rows.gif

该测评的最终结论:
Linux2.4 2.6 以及Solaris比较适合运行mysql, FreeBSD 5.3 (KSE and linuxthreads), and FreeBSD 4.11 表现一般,而其余的很不适合多处理器,而个别案例说明他对于单个处理器还是有优势可言的。

后面的还有很多评语,苦于本人的英语水平有限,只等说看出大概。(原文在 http://www.newsforge.com/article.pl?sid=04/12/27/1243207)

其实本人对某些测试结果持怀疑态度:
    1.其实操作系统内核是可以根据需要进行优化和重编的,
    2.而且对于FreeBSD的测试都是基于Linux模拟方式进行的,对于FreeBSD评价有失公平。
    3.Solaris的磁盘格式非常适合数据库存储,本人就有采用Solairs的磁盘格式优化linux下mysql的经历。

No Comments

启动多个mysqld

为达到启动多个mysqld服务,只要启动时使用不同pid-file,datadir,socket,port是完全的可行。

步骤:
1、准备目录
mkdir /mysql1
chown mysql:mysql /mysql1
chmod 755 mysql /mysql1
2、准备新的服务要读取的数据库
cp /path/to/mysql/var /mysql1
3、创建mysqld启动脚本
#start_msyql
#!/bin/sh
rundir="$1"
port="$2"
echo "$rundir"
/www/mysql/bin/safe_mysqld –user=mysql –pid-file="$rundir"/mysql.pid 

–datadir="$rundir"/var -O max_connections=500 -O wait_timeout=600 -O key_buffer=32M 

–port="$port" –socket="$rundir"/mysql.sock &
说明:
脚本使用方法./start_mysql /mysql1 3307
./start_mysql dir port
dir:指的是mysql数据库及运行时产生的文件所在目录
port:指新的mysqld监听的端口

4、创建mysqld的停止脚本
#stop_mysql
#!/bin/sh
rundir="$1"
echo "$rundir"
/www/mysql/bin/mysqladmin -u root -p -S"$rundir"/mysql.sock shutdown

No Comments

用FreeBSD的ports安装apache+php+mysql

看到网上有很多介绍apache+php+mysql安装的教程,但大多都是基于源代码编译或者给予RPM包的方式,对于FreeBSD自带的ports安装却鲜有提及,有方便的干嘛弄得复杂呢?

首先确定主机联网

cvsup -h cvsup.freebsd.org /usr/share/example/cvsup/ports-supfile #同步ports

Read the rest of this entry »

, , ,

2 Comments