正在加载...

记一次系统优化过程-2

接[上篇][1]这次主要是说,优化网络。一般就是两个点:- 优化limit- 优化socket状态### 首先是修改 /etc/security/limits.conf在文件中增加: * soft nofile 20480 * hard nofile 20480 * - memlock unlimited### 然后是修改 /etc/sysctl.conf kernel.s...

阅读全文 →


记一次系统优化过程-1

最近要搞一次抢票活动,就像小米那样,考虑到目前的用户数据,预计到时候会有瞬时30w左右的并发。这对于一个常规的web项目是灾难性的。即可能被宕机。为了解决这种情况,于是对现有系统进行了改造。先说现有系统的结构。现有的系统比较简单,属于传统的web应用,架构如下:![原始系统架构][1]这种架构是最传统的,对于压力不大的情况下,没有任何问题。当压力逐级增大,通过水平扩展 web 服务 和 水平扩展d...

阅读全文 →



SOHU邮箱在Python中的经验

今天上午的企业级第2场是我的slides。非常荣幸。自我感觉还行,但是还是有下面的问题。- 但是讲的时候过于来回走动了- 没有在停在一个地方让焦点都集中过来- 超出了预期的时间7分钟,讲了47分钟[这个是我infoq演讲的内容][1][这个是slides][2] [1]: http://www.infoq.com/cn/presentations/sohu-mailbox-python-expe...

阅读全文 →


python奇技淫巧

- 巧用异常得到代码片段的信息 python 有`__file__`, 但没有`__funcname__`, `__line__` 这样的东西,来描述目前执行到什么方法,哪一行。怎么办?巧用异常,可以得到相应的信息。 #utf-8 import sys def func_name_and_line(): """Return the frame object...

阅读全文 →


fudge文档翻译-4

###Allowing any call or attribute (a complete stub)如果你需要一个对象,延迟提供任何调用或者任何属性,你可以声明fudge.Fake.is_a_stub()。任何被请求的方法或者属性将永远返回一个新的fudge.Fake实例,使其更加容易的工作在复杂的对象上。这有一个例子: >>> Server = fudge.Fake('xmlrpclib...

阅读全文 →


fudge文档翻译-3

###Cascading Objects你可能想让一些对象用长的链式的工作。这有一个使用fudging [SQLAlchemy级联查询][1]的例子。注意 Fake.returns_fake() 指定于session.query(User)返回一个新的对象。同样注意因为query()返回一个迭代器,它设置返回一个fake用户对象的列表。 >>> import fudge >>> ses...

阅读全文 →


fudge文档翻译-2

###Fake objects without patches (dependency injection)如果你不需要任何补丁,你可以使用fudge.test()装饰器。这将捕获任何一个被抛出的非预期的异常。这是一个例子: >>> def send_msg(api): ... if False: # a mistake ... api.UpdateSta...

阅读全文 →


fudge文档翻译-1

fudge是一个python的mock框架,我非常喜欢它。决定把文档翻译出来。水平有限。切勿吐槽。###Fudging a Web Service当测试一个使用web服务的代码时,你可能想快速的设置一个不依赖于真实的在互联网上的web服务。这是一个使用mock对象的好的方式。假设你又一个Twitter的机器人,看起来像这样: >>> import oauthtwitter >>> de...

阅读全文 →