作者StubbornLin (Victor)
看板Python
标题[问题] Twisted以外的选择?
时间Mon Nov 9 17:55:04 2009
请问做为写伺服器之类的,除了Twisted以外还有哪些不错的选择?
可以推荐一下吗?
我有用twisted写很多伺服器,大部份都运作很好
但有个问题,就是记忆体暴增太快
我有一个音讯广播的伺服器
我发现这伺服器记忆体用量的暴增速度真的很快
一下子就涨到了一百多MB
接着就被我主机商的watch dog kill了
我猜想原因是这样
因为很多人网路速度不是很顺畅
他们可能一直都来不及读音讯 但新的音讯又一直进来
如此一来造成旧的音讯一直堆积 新的又一直进来
导至server记忆体使用量一下子就突破很不何理的百MB
加上,因为是广播伺服器,一份音讯进来会播给n个听众
我在想同样的音讯,被塞进每个连线的buffer里
都重覆了,即使他们是一样的内容
这也造成了记忆体用量暴多的原因之一
twisted真的很好用,很好写,也很有效率
但因太高阶,对於这些较低阶细节好像就无解= =
除非自己去改底层
所以我想试看看有没有twisted以外的选择
做为写伺服器和网路程式的用途
虽然说可以直接用socket写,一切都在我掌控中
但那又太罗唆
因此请推荐twisted以外好用的packages
谢谢
--
哇咧咧 创意投票系统
http://walele.com
易记学 程式设计教学
http://ez2learn.com/
易记学 程式设计讨论区
http://forum.ez2learn.com
VICTOR's 个人Blog
http://blog.ez2learn.com/
财报分析王
http://victorlin.serveftp.org/stock/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.170.93.54
1F:推 yoco315:江狗 qq 11/09 19:58
2F:→ yungyuc:Python 一向很吃 ram,100MB 也没多大 11/09 20:40
3F:→ yungyuc:音讯讯号又本来就很大,你最好先跑 profiler 看看 ... 11/09 20:40
4F:→ StubbornLin:江狗是什麽@@? 11/09 22:25
5F:→ StubbornLin:音讯是已经用mp3编码後的 应该没这麽大= = 11/09 22:26
6F:→ StubbornLin:我已经加了guppy在间隔时间内dump heap来看看了 11/09 22:26
7F:→ qrtt1:100mb 蛮小的耶 11/09 22:53
8F:→ StubbornLin:可是相对的其它伺服器用量都只有几十MB = = 11/09 23:14
9F:推 godfat:django i suppose. 我也不觉得 100M 会很大 :/ 11/10 00:43
10F:推 superGA:为什麽twisted是伺服器 我看了一下比较像是非同步框架 11/10 00:46
11F:推 superGA:又看了一下 原来真的可以当server= = 11/10 00:51
12F:→ superGA:django不是server喔 没有处理非同步事件 是不同层面的东西 11/10 00:53
13F:推 superGA:如果你是走http的话直接用apache或nginx不能吗? 11/10 01:11
14F:→ StubbornLin:不能 架构不适合 音讯伺服器的http连线一直都在 11/10 01:13
15F:→ StubbornLin:不像常见的网页request 通常短时间内做完就算了 11/10 01:13
16F:→ StubbornLin:一个listener进来收听会听很久 apache用的是worker 11/10 01:13
17F:→ StubbornLin:的架构 每个request占一个thread 当人数一多 11/10 01:14
18F:→ StubbornLin:就会有非常多的worker 也就是thread = = 11/10 01:14
20F:→ StubbornLin:100MB对我租的webfaction算是很多 囧 11/10 01:16
21F:→ StubbornLin:三不五时如果我的server用量超过 就会被watch dog砍 11/10 01:17
22F:推 superGA:我的意思是如果你没有特殊需求 那应该已经有你要得server 11/10 01:19
23F:→ superGA:没必要重头来过 你google streaming server应该有 11/10 01:19
24F:→ StubbornLin:特殊需求当然是有 所以整个架构都是我重头设计的 = = 11/10 01:25
25F:→ StubbornLin:我也知道有现成的可以改 不过我评估过 11/10 01:27
26F:→ StubbornLin:就算我去读懂那些现成的东西改成我要的 11/10 01:27
27F:→ StubbornLin:也不会比我重头自己设计和实作来得快和容易掌握 11/10 01:27
28F:推 superGA:你的需求是什麽? 11/10 01:54