Jim*_*Jim 10 python wsgi shared-memory uwsgi
我有一个python进程作为WSGI-apache服务器.我有几个机器上运行的这个过程的许多副本.我的进程大约200兆字节是只读的python数据.我想将这些数据放在内存映射段中,以便进程可以共享这些数据的单个副本.最好是能够附加到这些数据,因此它们可能是实际的python 2.7数据对象,而不是像pickle或DBM或SQLite那样解析它们.
有没有人有一个示例代码或指向已完成此项共享的项目的指针?
由于它是只读数据,您不需要在进程之间共享任何更新(因为不会有任何更新),我建议您在每个进程中保留它的本地副本。
如果内存限制是一个问题,您可以查看使用multiprocessing.Value或multiprocessing.Array不使用锁:https://docs.python.org/2/library/multiprocessing.html#shared-ctypes-objects
除此之外,您必须依赖外部进程和一些序列化来完成此任务,如果我是您,我会看看 Redis 或 Memcached。