奇怪的 G-WAN 响应速度差异
Posted
技术标签:
【中文标题】奇怪的 G-WAN 响应速度差异【英文标题】:strange G-WAN response speed differences 【发布时间】:2013-07-29 07:55:20 【问题描述】:我刚刚实现了 G-WAN 网络服务器并测试了我的代码,但是很奇怪我的服务器响应有时非常快(20 毫秒),有时超过几秒(6-7 秒)甚至超时...
我尝试简化我的代码,并向客户返回一个字符串,但问题仍然存在...... 另外,我记录了我的代码消耗的时间,它从来没有超过 1 秒,那是什么原因造成的?!
我猜这是网络延迟造成的,并测试了同一台服务器的网络速度,它非常快,有什么想法吗? (会不会包含一些第三方库,比如 mysql 引起的问题?)
这是我的 G-WAN 日志:
*------------------------------------------------
*G-WAN 4.3.14 64-bit (Mar 14 2013 07:33:12)
* ------------------------------------------------
* Local Time: Mon, 29 Jul 2013 10:09:05 GMT+8
* RAM: (918.46 MiB free + 0 shared + 222.81 MiB buffers) / 1.10 GiB total
* Physical Pages: 918.46 MiB / 1.10 GiB
* DISK: 3.27 GiB free / 6.46 GiB total
* Filesystem Type Size Used Avail Use% Mounted on
* /dev/mapper/vg_centos6-root
* ext4 6.5G 3.2G 3.0G 52% /
* tmpfs tmpfs 1004M 8.2M 995M 1% /dev/shm
* /dev/xvda1 ext4 485M 129M 331M 28% /boot
* 105 processes, including pid:10874 '/opt/gwan/gwan'
* Page-size:4,096 Child-max:65,535 Stream-max:16
* CPU: 1x Intel(R) Xeon(R) CPU E5506 @ 2.13GHz
* 0 id: 0 0
* Cores: possible:0-14 present:0 online:0
* L1d cache: 32K line:64 0
* L1i cache: 32K line:64 0
* L2 cache: 256K line:64 0
* L3 cache: 4096K line:64 0
* NUMA node #1 0
* CPU(s):1, Core(s)/CPU:0, Thread(s)/Core:2
* Bogomips: 4,256.14
* Hypervisor: XenVMMXenVMM
* using 1 workers 0[1]0
* among 2 threads 0[]1
* 64-bit little-endian (least significant byte first)
* CentOS release 6.3 (Final) (3.5.5-1.) 64-bit
* user: root (uid:0), group: root (uid:0)
* system fd_max: 65,535
* program fd_max: 65,535
* updated fd_max: 500,000
* Available network interfaces (3):
* 127.0.0.1
* 192.168.0.1
* xxx.xxx.xxx.xxx
* memory footprint: 1.39 MiB.
* Host /opt/gwan/0.0.0.0_8080/#0.0.0.0
* loaded index.c 3.46 MiB MD5:afb6c263-791c706a-598cc77b-e0873517
* memory footprint: 3.40 MiB.
【问题讨论】:
这个问题似乎是题外话,因为它是针对webmasters 最后,我尝试使用-g模式,将worker增加到服务器的CPU数量,问题似乎解决了,谁能告诉我是什么原因造成的问题???? @Rowland:这是一个(servlet)编程,可能是一个编译问题,所以它似乎与程序员问答相关。从问题中删除 [SQL] 和 [C] 标记是不公平的。 @gil 虽然没有 C 代码或 SQL? @Rowland:在问题中,你会多次找到code这个词,就像在“我尝试简化我的代码”中一样。那么删除“moriya”为他的代码明确定义的(相关)标签有什么意义呢?我发现再次删除这些标签是非常愚蠢的,因为这会删除有关用户问题出现问题的潜在重要提示。你的版本只是破坏,你甚至没有试图证明它们是正当的。真丢脸。 【参考方案1】:如果我使用-g模式,并将worker的数量增加到服务器的CPU数量,这个问题似乎解决了
然后,这似乎是一个 CPU 检测问题。请转储您的 gwan.log 文件头(CPU 检测)的相关部分,以便 ew 可以查看。
当 G-WAN 必须使用必须搜索和链接的外部库重新编译 servlet 时,这可能需要一些时间(尤其是在只有一个工作人员且其他请求待处理的情况下)。
更新:在您的 gwan.log 文件转储之后,重要的是:
CPU: 1x Intel(R) Xeon(R) CPU E5506 @ 2.13GHz
0 id: 0 0
Cores: possible:0-14 present:0 online:0
CPU(s):1, Core(s)/CPU:0, Thread(s)/Core:2
Hypervisor: XenVMMXenVMM
using 1 workers 0[1]0
among 2 threads 0[]1
Intel E5506 是 4 核 CPU...但 Xen Hypervisor
报告 1 个 CPU 和 0 个内核(并且启用了超线程,没有任何 CPU 内核就毫无意义)。
为什么Xen
会优先考虑用完全废话破坏有关 CPU 的真实和正确信息,这超出了本次讨论的目的。
我只能说这是“moriya”遇到问题的原因(因此使用./gwan -g -w 4
进行“修复”以绕过损坏的Linux 内核/proc
和CPUID
报告的错误信息指令)。
我只能建议避免使用脑损伤的虚拟机管理程序,这些管理程序会破坏检测 CPU 拓扑的两种标准方法:Linux 内核 /proc 结构和 CPUID 指令,从而阻止多核软件(如 G-WAN)正常运行。
【讨论】:
非常感谢,我已经尝试换到另一台实际上有 3 个核心的服务器,但 gwan 仍然只使用 1 个,我需要使用 -g 选项来覆盖它......无论如何,谢谢你的帮助!! @Gil ovh.co.uk/dedicated_servers/kimsufi.xml 1核的微型Atom服务器能跑G-WAN吗? @Nagi 我认为 G-WAN 没有在原子 CPU 上运行......但 Gil 会确认 如果你看看gwan.ch/faq#cpus,它肯定支持。可以从en.wikipedia.org/wiki/List_of_Intel_Atom_microprocessors获取一些信息,atom支持的所有cpu指令集。 上述问题中遇到的问题是关于 Xen(和管理程序)而不是 CPU。我从未见过 G-WAN 错误检测到 Intel CPU(AMD 有时是因为它们对 CPUID 指令使用不同的返回码)。而且,是的,支持 Intel Atom CPU:gwan.ch/imgs//gwan_intel_atom.png以上是关于奇怪的 G-WAN 响应速度差异的主要内容,如果未能解决你的问题,请参考以下文章