Paster na kilka procesów

Po przeczytaniu paru artykułów o GIL postanowiÅ‚em spróbować rozdzielić paster’a na kilka procesów.

Domyślnie Pylons rusza w trybie z pulą 10 wątków. Liczbę wątków można zmienić w production.ini umieszczając w sekcji server:main poniższe:

use_threadpool = True
threadpool_workers = 20

Ale czy 20 wątków i więcej będą optymalnie wykorzystywały wieloprocesorową maszynę? Może lepszym wyjściem jest powielanie procesów a nie wątków.

Aby uruchomić aplikację na kilku procesach można zrobić kilka sekcji server:

[server:main]
use  = egg:paste#http
host = 0.0.0.0
port = 5000
use_threadpool = True
threadpool_workers = 10

[server:main2]
use  = egg:paste#http
host = 0.0.0.0
port = 5001
use_threadpool = True
threadpool_workers = 10

Teraz aby wystartować robimy:

paster serve production.ini --server-name=main --pid-file=main.pid --log-file=main.log --daemon start 
paster serve production.ini --server-name=main2 --pid-file=main2.pid --log-file=main2.log --daemon start

I mamy kilka procesów. Teraz wystarczy napisać kawałek skryptu startującego, ustawić loadbalancer i testować.

This entry was posted on Mon, 10 Mar 2008 19:12:00 GMT and Posted in , . You can follow any any response to this entry through the Atom feed. You can leave a comments, .


Comments

Leave a response

Leave a comment