常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

在FreeBSD 5.2+下面用KSE编译mysql 4.1.x

 
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 安装-配置-优化-安全
阅读上一个主题 :: 阅读下一个主题  
作者 留言
hunreal
道士


注册时间: 2002-06-30
文章: 951

文章发表于: Fri 2004-08-13 01:12:01    发表主题: 在FreeBSD 5.2+下面用KSE编译mysql 4.1.x 引用并回复

手动编译
代码:

./configure --prefix=/usr/local/mysql --without-debug --without-bench --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-extra-charsets=complex --with-named-thread-libs='-lkse -D_THREAD_SAFE' CFLAGS='-pipe -march=i686 -fno-omit-frame-pointer -O3' CXXFLAGS='-pipe -march=i686 -fno-omit-frame-pointer -O3 -felide-constructors -fno-rtti -fno-exceptions'


如果使用ports来编译,如果还要加其他参数,自行添加
代码:

make install clean PTHREAD_LIBS=-lkse


不用再依赖linuxthreads,再配合ULE调度,性能是非常得不错
用该方法编译不一定稳定

成功启动mysqld,运行top可见到
53893 mysql 20 0 9608K 4328K kserel 0:05 0.00% 0.00% mysqld

kserel就是kse
返回页首
阅览会员资料 发送站内信件
delphij
精神病


注册时间: 2002-08-07
文章: 10721
来自: San Jose, California

文章发表于: Fri 2004-08-13 01:48:17    发表主题: 引用并回复

补充一下。

首先前提是FreeBSD的版本至少高于502106(不要看这个版本实际的意义 :P 没什么联系的)。

kserel是一种状态(“kse release”),看到进程处于这种状态是由于top的工作方式导致的。并不是说程序处于这个状态就一定用到了KSE的全部特性。

_________________
BSD是独立的一蹴,我们有自己的圈子,我们不以商业驱动,追求完美是我们的源动力,任何不好的代码都不能在这里存活。

天下没有白费的努力。成功不必在我,而功力必不唐捐。
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页
hunreal
道士


注册时间: 2002-06-30
文章: 951

文章发表于: Fri 2004-08-13 02:25:48    发表主题: 引用并回复

关于threads的查看,可以用 ps H 例如 ps axH
可以看到threads类都是一个pid.......
linuxthreads的应用rfork(),N多pid


btw: delphij的注册日期怎么比我还后 Rolling Eyes Rolling Eyes
返回页首
阅览会员资料 发送站内信件
jeffgao
老妖


注册时间: 2003-10-13
文章: 2033
来自: Canada

文章发表于: Fri 2004-08-13 06:55:08    发表主题: 引用并回复

早就在用MySQL 4.1+libpthread(KSE)了,没觉得有什么不稳定。经常的操作是创建、修改、查询有60多万记录的表,没有什么问题。
要用libpthread/libkse不一定要指定什么特别的参数,用libmap.conf就可以了。
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页
hunreal
道士


注册时间: 2002-06-30
文章: 951

文章发表于: Fri 2004-08-13 12:46:47    发表主题: 引用并回复

jeffgao 写到:
早就在用MySQL 4.1+libpthread(KSE)了,没觉得有什么不稳定。经常的操作是创建、修改、查询有60多万记录的表,没有什么问题。
要用libpthread/libkse不一定要指定什么特别的参数,用libmap.conf就可以了。


那你编译的是dynamic的方式,这里也就会有一点性能损失
我一向编译成static的
返回页首
阅览会员资料 发送站内信件
hunreal
道士


注册时间: 2002-06-30
文章: 951

文章发表于: Fri 2004-08-13 12:47:03    发表主题: 引用并回复

关于threads的一些sysctl
sysctl -a | grep -i thread

系统默认的
kern.threads.max_threads_per_proc
kern.threads.max_groups_per_proc

分别为150,50,实在太小了,如果不设置大点,繁忙的threads程序将会产生can't create a new thread的错误
我目前设置为1000,测试当中
返回页首
阅览会员资料 发送站内信件
delphij
精神病


注册时间: 2002-08-07
文章: 10721
来自: San Jose, California

文章发表于: Fri 2004-08-13 16:00:23    发表主题: 引用并回复

hunreal 写到:
分别为150,50,实在太小了,如果不设置大点,繁忙的threads程序将会产生can't create a new thread的错误
我目前设置为1000,测试当中


天啊,没有那么多CPU开这么多线程只能给自己带来麻烦的……线程多的程序通常难调试。

_________________
BSD是独立的一蹴,我们有自己的圈子,我们不以商业驱动,追求完美是我们的源动力,任何不好的代码都不能在这里存活。

天下没有白费的努力。成功不必在我,而功力必不唐捐。
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页
hunreal
道士


注册时间: 2002-06-30
文章: 951

文章发表于: Fri 2004-08-13 19:04:30    发表主题: 引用并回复

delphij 写到:
hunreal 写到:
分别为150,50,实在太小了,如果不设置大点,繁忙的threads程序将会产生can't create a new thread的错误
我目前设置为1000,测试当中


天啊,没有那么多CPU开这么多线程只能给自己带来麻烦的……线程多的程序通常难调试。



线程嘛,表怕,当了reset Cool
windows里面的线程比这个多得多 Wink
返回页首
阅览会员资料 发送站内信件
琴心
半仙


注册时间: 2004-07-19
文章: 38

文章发表于: Mon 2004-08-16 14:21:38    发表主题: 引用并回复

请问delphij

这两个参数怎麽设置
必须重新编译内核吗?
我的机器是双至强2。4G
2G内存
设多大合适呢?
返回页首
阅览会员资料 发送站内信件
huanghwh
半仙


注册时间: 2002-10-19
文章: 166
来自: 广州

文章发表于: Mon 2004-08-16 17:30:19    发表主题: 引用并回复

hunreal 写到:
关于threads的一些sysctl
sysctl -a | grep -i thread

系统默认的
kern.threads.max_threads_per_proc
kern.threads.max_groups_per_proc

分别为150,50,实在太小了,如果不设置大点,繁忙的threads程序将会产生can't create a new thread的错误
我目前设置为1000,测试当中

你用的不是CURRENT,or 太旧了? CURRENT早就加大了。
返回页首
阅览会员资料 发送站内信件
hunreal
道士


注册时间: 2002-06-30
文章: 951

文章发表于: Tue 2004-08-17 03:43:40    发表主题: 引用并回复

huanghwh 写到:
hunreal 写到:
关于threads的一些sysctl
sysctl -a | grep -i thread

系统默认的
kern.threads.max_threads_per_proc
kern.threads.max_groups_per_proc

分别为150,50,实在太小了,如果不设置大点,繁忙的threads程序将会产生can't create a new thread的错误
我目前设置为1000,测试当中

你用的不是CURRENT,or 太旧了? CURRENT早就加大了。


current多少?
最近的current是非常的不稳定,经常连内核都过不去
返回页首
阅览会员资料 发送站内信件
leoruby
半仙


注册时间: 2002-09-10
文章: 33

文章发表于: Sat 2006-03-18 00:35:32    发表主题: Re: 在FreeBSD 5.2+下面用KSE编译mysql 4.1.x 引用并回复

hunreal 写到:
手动编译
代码:

./configure --prefix=/usr/local/mysql --without-debug --without-bench --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-extra-charsets=complex --with-named-thread-libs='-lkse -D_THREAD_SAFE' CFLAGS='-pipe -march=i686 -fno-omit-frame-pointer -O3' CXXFLAGS='-pipe -march=i686 -fno-omit-frame-pointer -O3 -felide-constructors -fno-rtti -fno-exceptions'


如果使用ports来编译,如果还要加其他参数,自行添加
代码:

make install clean PTHREAD_LIBS=-lkse


不用再依赖linuxthreads,再配合ULE调度,性能是非常得不错
用该方法编译不一定稳定

成功启动mysqld,运行top可见到
53893 mysql 20 0 9608K 4328K kserel 0:05 0.00% 0.00% mysqld

kserel就是kse


If you are using FreeBSD 5.3+, use -lpthread instead of -lkse
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页
从以前的文章开始显示:   
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 安装-配置-优化-安全 论坛时间为 北京时间
1页/共1

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2023cc © 2003 Opensource Steps; © 2003-2009 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
Protected by Project Honey Pot and phpBB.cc
silvery-trainer
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标