环境:
我已经在分发流程上工作了一段时间。大多数这些工具都需要数据库访问。最终由于MySQL不堪重负导致了服务器/资源问题(据我所知)。
我尝试了很多解决方案,现在我正在尝试使用Gearman。我向工人发送了查询,并且我得到了正确的回复给客户。 (我还没有测试过返回的错误。)
我的问题是我的测试代码有3个sql语句 - 所有选择。当我运行此测试脚本2时,可能是5次中的4次,或者查询需要3秒才能返回,1次需要0.01秒才能完成。在使用此脚本的第5次尝试时,所有3个查询需要3秒。小于0.01秒的查询通常是最后一次查询,但并非总是如此。我有一个直接的数据库连接执行相同的查询,它们都返回0.002秒范围内。
这种行为似乎无法改变我是运行1个还是最多4个工作者。客户端正在使用doHigh。
具体来说,这是我最近一次试运行的一些时间(以秒或Unix纪元时间):
显然这个请求花了大约9秒而不是3.客户端和工作者都驻留在同一台机器上。作业服务器对LAN开放,因此它正在侦听192.168.1.XX而不是127.0.0.1。将作业发送到另一台机器上的作业服务器(更快,更多RAM,几乎没有负载),时间实际上是相同的。
这是Gearman的预期行为吗?
由于
根据另一个论坛的建议,我使用--verbose = DEBUG记录了正在发生的事情。长话短说,时间差距似乎正在发生btwn发送NOOP到192.168.1 ...和192.168.1 ... Ready POLLIN - > ...这是一个相关的日志摘录(希望我知道如何更好地格式化它):
INFO 2013-09-26 02:39:43.873141 [main]接受来自的连接 192.168.1.70:39280 DEBUG 2013-09-26 02:39:43.873200 [3]收到CON唤醒事件 - > libgearman服务器/ gearmand_thread.cc:602 DEBUG 2013-09-26 02:39:43.873244 [3] setsockopt()33 - > libgearman-server / io.cc:809 DEBUG 2013-09-26 02:39:43.873276 [3 ] 192.168.1.70:39280看着POLLIN - > libgearman-server / gearmand_thread.cc:151 INFO 2013-09-26 02:39:43.873292 [3]齿轮连接作出了调查2013-09-26 02:39:43.873309 [3] 192.168.1.70:39280 Ready POLLIN - > libgearman-server / gearmand_con.cc:118 DEBUG 2013-09-26 02:39:43.873333 [3]读取22个字节 - > libgearman服务器/ io.cc:686 INFO 2013-09-26 02:39:43.873346 [3]齿轮拆包DEBUG 2013-09-26 02:39:43.873363 [3] GEAR长度:0 gearmand_command_t:GEARMAN_COMMAND_OPTION_REQ - > libgearman-server / plugins / protocol / gear / protocol.cc:248 DEBUG 2013-09-26 02:39:43.873375 [3]收到了OPTION_REQ 192.168.1.70:3093758901 - > libgearman-server / thread.cc:318 DEBUG 2013-09-26 02:39:43.873399 [3] 192.168.1.70:39280观看 POLLIN - > libgearman-server / gearmand_thread.cc:1513 DEBUG 2013-09-26 02:39:43.873411 [proc] 192.168.1.70:39280包命令 OPTION_REQ - > libgearman-server / server.cc:98 DEBUG 2013-09-26 02:39:43.873457 [proc]'例外' - > libgearman-server / server.cc:485 DEBUG 2013-09-26 02:39:43.873492 [
3]收到RUN唤醒事件 - > libgearman-server / gearmand_thread.cc:607 DEBUG 2013-09-26 02:39:43.873508 [3] GEAR长度:0 gearmand_command_t: GEARMAN_COMMAND_OPTION_RES - > libgearman-server / plugins / protocol / gear / protocol.cc:274 DEBUG 2013-09-26 02:39:43.873551 [3]发送()22个字节到对等体 192.168.1.70:39280 - > libgearman-server / io.cc:275 DEBUG 2013-09-26 02:39:43.873565 [3] OPTION_RES发送到192.168.1.70:-1201208395 - > libgearman-server / thread.cc:365 DEBUG 2013-09-26 02:39:43.873583 [3] 192.168.1.70:39280 Ready POLLIN - > libgearman-server / gearmand_con.cc:118 DEBUG 2013-09-26 02:39:43.873599 [3]读取177字节 - > libgearman-server / io.cc:686 INFO 2013-09-26 02:39:43.873610 [3 ]齿轮拆包DEBUG 2013-09-26 02:39:43.873635 [3] GEAR 长度:118 gearmand_command_t:GEARMAN_COMMAND_SUBMIT_JOB_HIGH - > libgearman-server / plugins / protocol / gear / protocol.cc:248 DEBUG 2013-09-26 02:39:43.873648 [3]收到了SUBMIT_JOB_HIGH 192.168.1.70:3093758901 - > libgearman-server / thread.cc:318 DEBUG 2013-09-26 02:39:43.873668 [3] 192.168.1.70:39280观看 POLLIN - > libgearman-server / gearmand_thread.cc:1513 DEBUG 2013-09-26 02:39:43.873675 [proc] 192.168.1.70:39280包命令 SUBMIT_JOB_HIGH - > libgearman-server / server.cc:98 DEBUG 2013-09-26 02:39:43.873696 [proc]收到提交,功能:db_access 独特的:e692b4c2-2654-11e3-bc34-90e6baa255ea,带有2个参数 - > libgearman-server / server.cc:231 DEBUG 2013-09-26 02:39:43.873715 [ proc]比较队列0到优先级0的限制0 - > libgearman-server / job.cc:174 NOTICE 2013-09-26 02:39:43.873754 [ proc]接受,db_access,e692b4c2-2654-11e3-bc34-90e6baa255ea,0 - > libgearman-server / server.cc:301 DEBUG 2013-09-26 02:39:43.873764 [
3]收到RUN唤醒事件 - > libgearman-server / gearmand_thread.cc:607 DEBUG 2013-09-26 02:39:43.873763 [4]收到RUN唤醒事件 - > libgearman-server / gearmand_thread.cc:607 DEBUG 2013-09-26 02:39:43.873794 [3] GEAR长度:0 gearmand_command_t: GEARMAN_COMMAND_JOB_CREATED - > libgearman-server / plugins / protocol / gear / protocol.cc:274 DEBUG 2013-09-26 02:39:43.873803 [4] GEAR长度:0 gearmand_command_t:GEARMAN_COMMAND_NOOP - > libgearman-server / plugins / protocol / gear / protocol.cc:274 DEBUG 2013-09-26 02:39:43.873824 [3]发送()25个字节到对等体 192.168.1.70:39280 - > libgearman-server / io.cc:275 DEBUG 2013-09-26 02:39:43.873838 [3]发送JOB_CREATED为192.168.1.70:-1201208395 - > libgearman-server / thread.cc:365 DEBUG 2013-09-26 02:39:43.873850 [4] send()12个字节到对等192.168.1.70:39219 - > libgearman-server / io.cc:275 DEBUG 2013-09-26 02:39:43.873865 [4 ]发送NOOP到192.168.1.70:-1201209827 - > libgearman-server / thread.cc:365 DEBUG 2013-09-26 02:39:47.032010 [
4] 192.168.1.70:39219 Ready POLLIN - > libgearman-server / gearmand_con.cc:118 DEBUG 2013-09-26 02:39:47.032061 [4]读取12个字节 - > libgearman服务器/ io.cc:686 INFO 2013-09-26 02:39:47.032074 [4]齿轮拆开DEBUG 2013-09-26 02:39:47.032086 [4] GEAR长度:0 gearmand_command_t:GEARMAN_COMMAND_GRAB_JOB_ALL - > libgearman-server / plugins / protocol / gear / protocol.cc:248 DEBUG 2013-09-26 02:39:47.032098 [4]收到GRAB_JOB_ALL 192.168.1.70:3093757469 - > libgearman-server / thread.cc:318 DEBUG 2013-09-26 02:39:47.032119 [4] 192.168.1.70:39219看着 POLLIN - > libgearman-server / gearmand_thread.cc:1513 DEBUG 2013-09-26 02:39:47.032134 [proc] 192.168.1.70:39219数据包命令 GRAB_JOB_ALL - > libgearman-server / server.cc:98 DEBUG 2013-09-26 02:39:47.032170 [proc]可用于db_access的工作:1 - > libgearman-server / gearmand_con.cc:291 DEBUG 2013-09-26 02:39:47.032200 [proc]发送减少提交,分区: db_access(9)Reducer:(0)唯一: e692b4c2-2654-11e3-bc34-90e6baa255ea(36),其数据大小为(118) - > libgearman-server / server.cc:607 DEBUG 2013-09-26 02:39:47.032239 [
4]收到RUN唤醒事件 - > libgearman-server / gearmand_thread.cc:607 DEBUG 2013-09-26 02:39:47.032254 [4] GEAR长度:118 gearmand_command_t: GEARMAN_COMMAND_JOB_ASSIGN_ALL - > libgearman-server / plugins / protocol / gear / protocol.cc:274 DEBUG 2013-09-26 02:39:47.032290 [4]发送()192个字节到对等体 192.168.1.70:39219 - > libgearman-server / io.cc:275 DEBUG 2013-09-26 02:39:47.032303 [4]发送JOB_ASSIGN_ALL到 192.168.1.70:-1201209827 - > libgearman-server / thread.cc:365 DEBUG 2013-09-26 02:39:47.034398 [4] 192.168.1.70:39219准备好了
POLLIN - > libgearman-server / gearmand_con.cc:118 DEBUG 2013-09-26 02:39:47.034416 [4]读取1926字节 - > libgearman-server / io.cc:686 INFO 2013-09-26 02:39:47.034427 [4 ]齿轮拆包DEBUG 2013-09-26 02:39:47.034438 [4] GEAR 长度:1900 gearmand_command_t:GEARMAN_COMMAND_WORK_COMPLETE - > libgearman-server / plugins / protocol / gear / protocol.cc:248 DEBUG 2013-09-26 02:39:47.034462 [4]收到了WORK_COMPLETE 192.168.1.70:3093757469 - > libgearman-server / thread.cc:318 DEBUG 2013-09-26 02:39:47.034479 [4] 192.168.1.70:39219看着 POLLIN - > libgearman-server / gearmand_thread.cc:1513 DEBUG 2013-09-26 02:39:47.034485 [proc] 192.168.1.70:39219数据包命令 WORK_COMPLETE - > libgearman-server / server.cc:98 DEBUG 2013-09-26 02:39:47.034526 [3]收到RUN唤醒事件 - > libgearman-server / gearmand_thread.cc:607 DEBUG 2013-09-26 02:39:47.034542 [3] GEAR长度:1900 gearmand_command_t: GEARMAN_COMMAND_WORK_COMPLETE - > libgearman-server / plugins / protocol / gear / protocol.cc:274 DEBUG 2013-09-26 02:39:47.034577 [3]发送()1926字节给对等体 192.168.1.70:39280 - > libgearman-server / io.cc:275 DEBUG 2013-09-26 02:39:47.034591 [3]发送WORK_COMPLETE到 192.168.1.70:-1201208395 - > libgearman-服务
R / thread.cc:365