上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。更多的请见官方wiki:http://wiki.nginx.org/Main。其优点:Nginx做为HTTP服务器,有以下几项基本特性: 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲. 无缓存的反向代理加速,简单的负载均衡和容错.一、依赖的程序gzip module requires zlib libraryrewrite module requi 阅读全文
posted @ 2011-10-12 16:52 残夜 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 在项目中遇到一个很糟糕的问题,运行一个Python服务脚本,把服务器跑死了,以前以为开的进程过多,进程中因批量处理,导致内存和交换分区耗光引起的。后来才发现,确实是内存和交换分区无空间导致的死机,但却不是因为多进程分析引起的。从网上看了很多资料,相关信息并不多,最后确定是由于Python对大对象内存的释放引起的。在一个对象的引用计数减为0时,与该对象对应的析构函数就会被调用,但是要特别注意的是,调用析构函数并不意味着最终一定会调用free释放内存空间,如果真是这样的话,那频繁地申请、释放内存空间会使 Python的执行效率大打折扣。Python内存管理规则:del的时候,把list的元素释放掉 阅读全文
posted @ 2011-10-10 18:23 残夜 阅读(9487) 评论(0) 推荐(0) 编辑
摘要: 同步进程import subprocesscmd = ('tail', '/tmp/test.log')sp = subprocess.Popen(cmd, stdout=subprocess.PIPE,stderr=subprocess.PIPE)if sp.wait() == 0: print 'exec command succussful.'else: print sp.stderr.read()异步进程import subprocesscmd = ('tail', '-f', '/tmp/test 阅读全文
posted @ 2011-10-10 15:38 残夜 阅读(2419) 评论(0) 推荐(0) 编辑
摘要: Python提供多个创建子进程的模块,我比较习惯使用subprocess模块,因为在Python手册中有这样一段话: This module intends to replace several other, older modules and functions, such as: os.system、os.spawn*、os.popen*、popen2.*、commands.* subprocess被用来替换一些老的模块和函数,如:os.system、os.spawn*、os.popen*、popen2.*、commands.*。可见,subprocess是被推荐使用的模块。模块选择比.. 阅读全文
posted @ 2011-10-10 13:50 残夜 阅读(9232) 评论(0) 推荐(0) 编辑
摘要: 1.有两种方式来实现并发性,一种方式是让每个“任务”或“进程”在单独的内在空间中工作,每个都有自已的工作内存区域。不过,虽然进程可在单独的内存空间中执行,但除非这些进程在单独的处理器上执行,否则,实际并不是“同时”运行的。是由操作系统把处理器的时间片分配给一个进程,用完时间片后就需退出处理器等待另一个时间片的到来。另一种方式是在在程序中指定多个“执行线程”,让它们在相同的内存空间中工作。这称为“多线程处理”。线程比进程更有效,因为操作系统不必为每个线程创建单独的内存空间。2. 新建进程用os.fork函数。但它只在POSIX系统上可用,在windows版的python中,os模块没有定义os. 阅读全文
posted @ 2011-09-28 13:20 残夜 阅读(3596) 评论(0) 推荐(0) 编辑
摘要: 现在的世道,买房难,买车难,买火车票更难~~ 阅读全文
posted @ 2011-09-21 09:22 残夜 阅读(189) 评论(0) 推荐(0) 编辑
摘要: Django Web编程思路 global setting生成项目project初始化配置settings.py生成应用模块app安装app至projectapp setting编写models.py定义urls.py将app urls加入project urls配置编写views.py编写相应的templaterun server启动项目,浏览器访问 Check Environment Python2.6Django http:// www.djangoproject.com/downloadConfig PYTHONPATH /etc/environment Start Projec... 阅读全文
posted @ 2011-09-19 21:33 残夜 阅读(1019) 评论(0) 推荐(1) 编辑
摘要: Jug 是一个基于任务的并行处理框架,采用 Python 编写,可用来在不同的机器上运行同一个任务,使用 NFS 做文件系统的通讯;也可在使用同一台服务器的多CPU运行同一任务。Jug工作原理://Todo//Jug使用小结:1.使用Jug execute jugfile.py启动并行一个进程,实际上执行如下:$python /usr/loca/python/bin/jug execute jugfile.py2.使用jug status jugfile.py查看并行进程的状态,如下图:运行结束时的并行状态如下:Task之间可以存在依赖关系,只能是任务之间的依赖,任务的输出结果,无法作为任务的 阅读全文
posted @ 2011-09-19 20:54 残夜 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 我们经常会采用生产者/消费者关系的两个线程来处理一个共享缓冲区的数据。例如一个生产者线程接受用户数据放入一个共享缓冲区里,等待一个消费者线程对数据取出处理。但是如果缓冲区的太小而生产者和消费者两个异步线程的速度不同时,容易出现一个线程等待另一个情况。为了尽可能的缩短共享资源并以相同速度工作的各线程的等待时间,我们可以使用一个“队列”来提供额外的缓冲区。 创建一个“队列”对象import Queuemyqueue = Queue.Queue(maxsize = 10)Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设. 阅读全文
posted @ 2011-09-16 11:59 残夜 阅读(1188) 评论(0) 推荐(0) 编辑
摘要: 多个执行线程经常要共享数据,如果仅仅读取共享数据还好,但是如果多个线程要修改共享数据的话就可能出现无法预料的结果。 同步“锁”机制锁对象用threading.RLock类创建mylock = threading.RLock()如何使用锁来同步线程呢?线程可以使用锁的acquire() (获得)方法,这样锁就进入“locked”状态。每次只有一个线程可以获得锁。如果当另一个线程试图获得这个锁的时候,就会被系统变为“blocked”状态,直到那个拥有锁的线程调用锁的release() (释放)方法,这样锁就会进入“unlocked”状态。“blocked”状态的线程就会收到一个通知,并有权利获得. 阅读全文
posted @ 2011-09-16 11:54 残夜 阅读(1231) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页