- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、相关开源的技术资料及下载地址
jobServer端基于C/C 开发实现 /gearmand
worker及client端java开发实现用jar包 /gearman-java
2、gearman server端安装文档:
1.)下载gearman服务端(示例所用版本为1.1.9),这里指的是Job Server,有三个语言版本。分别是C、Perl、Java。Worker、Client有很多语言的实现,包括C、Perl、Python、Java等,可自行参考/download,下载需要的版本。本文所用的Job Server是C版,Worker、Client是gearman-java,注意不是java-gearman-service。gearman-java所属公司提供了gearman的Job Server、Worker、Client的Java版实现。
2.)解压、编译、安装
tar xzf gearmand-1.1.9.tar.gz
cd gearmand-1.1.9
./configure
--configure过程,可能会出现一些错误(error):
(1)could not find toolset name.... 需要安装gcc-c ,yum install gcc-c
(2)cannot find Boost headers version = 1.39.0 需要安装boost-devel-1.41.0,yum install boost-devel-1.41.0
(3)could not find gperf...需要安装gperf,yum install gperf
make make install
mkdir /usr/local/var
mkdir /usr/local/var/log/
--创建/usr/local/var/log/ 目录
gearmand -L 88 -p 4730 -u root -t 100 -R -d
--启动gearman的守护进程,其中IP及端口可以自定义,请根据自己服务的IP定义。
gearman -h 88 -p 4370 -w -f wc -- wc -l
gearman -h 88 -p 4730 -f wc /etc/passwd
telnet 88 4730
--状态维护
status
--可以见到如上的输出,分 4 个部分.
已知任务 - 运行的任务 - 队列中的任务 - 可用的 Worker.
workers
--可以见到如上的输出,分 4 个部分.
ID - 连接的主机的IP - 识别码 - 注册的功能
3. 启动命令:
/usr/local/sbin/gearmand -L 88 -p 4730 -u root -t 100 -R -d
并将该命令增加到/etc/rc.local中去。
4、服务器性能调优
线程模型
在大规模使用的时候,需要针对应用类型进行参数设置,以使Gearman的性能达到最优,这首先应该了解Gearman的线程模型。
为确保具备对海量任务调度的支持能力,Gearman毫无悬念的选择libevent作为网络操作支撑库。因此Gearman的服务器Gearmand提供了三类线程角色:
端口监听和管理线程,接受新连接请求并将之交给IO线程,1个
IO线程,完成实际的任务处理,包括命令解析,队列操作等,n个
处理线程,完成内部数据结构的管理,无系统调用尽可能简单,1个
其中第1, 3种线程对全局处理性能没有直接影响,虽然处理线程有可能成为瓶颈,但他的工作足够简单消耗可忽略不计,因此我们的性能调优主要目标是在IO线程的数量。
对每个IO线程来说,它都会有一个libevent的实例;所有Gearman的操作会以异步任务方式提交到处理线程,并由IO线程获取完成实际操作,因此IO线程的数量是与可并行处理任务数成正比。Gearmand 提供 -t 参数调整总IO线程数,需要使用 libevent 1.4 以上版本提供多线程支持。
-------------------------------
进程句柄数
另外一个影响大规模部署的是进程句柄数,Gearman会为每一个注册的Worker分配一个fd(文件描述符),而这个fd的总数是受用户限制的,可以使用 ulimit -n 命令查看当前限制
flier@debian:~$ ulimit -n
1024
flier@debian:~$ ulimit -HSn 40
文档评论(0)