> Hello All (sending again since first time did not go through), > > > > > I am experimenting with Ngnix + fastrouter subscriptions for scaling > and have run into a snag. > > Summary: > 1. Fast router using cheap mode never dispatches to subscribed servers. > 2. A fastrouter only will dispatch to subscribed servers > > Conclusion: something about my configs does not allow cheap mode to work. > > Any help would be appreciated: > > Here's my configs (fastrouter and fastworker) and logs: > > I am launching with : > > uwsgi --ini-paste fastrouter.ini > ussgi --ini-paste fastworker.ini > > tested with: > curl -k https://loup.ece.ucsb.edu/data_service > curl -k https://loup.ece.ucsb.edu/data_service > curl -k https://loup.ece.ucsb.edu/data_service > > I was expecting to see load-balancing between the main server and the > worker. > > > Thank, > Kris > > > > > > ## fastrouter.ini > [app:main] > use = config:site.cfg > bisque.services_enabled = > bisque.services_disabled = engine_service > > bisque.static_files = True > bisque.server = https://loup.ece.ucsb.edu > [uwsgi] > virtualenv = /home/kgk/work/bisque/bq057/bqenv > stats = /tmp/stats.socket > > ;create a shared socket (the webserver will connect to it) > plugins = fastrouter > #shared-socket = 127.0.0.1:3031 > shared-socket = /tmp/bisque.sock > chmod-socket = 666 > > ; bind the fastrouter to the shared socket > fastrouter = =0 > ; bind an instance to the same socket > socket = =0 > > ; having a master is always a good thing... > master = true > ; our subscription server > fastrouter-subscription-server = 127.0.0.1:3017 > ; a bunch of processes > processes = 2 > ; and put the fastrouter in cheap mode > fastrouter-cheap = true > > # post-buffering : buffer post large > post-buffering = 1 > #buffer-size : internal buffer size for uwsgi packet parsing. > buffer-size = 8192 > > > > ############################### > # fastworker.ini > [app:main] > use = config:site.cfg > bisque.services_enabled = > bisque.services_disabled = engine_service > > bisque.static_files = True > bisque.server = https://loup.ece.ucsb.edu > > [uwsgi] > virtualenv = /home/kgk/work/bisque/bq057/bqenv > stats = /tmp/stats1.socket > #plugins = python > master = true > processes = 1 > #threads = 4 > heartbeat = 10 > socket = 127.0.0.1:0 > #subscribe2 = server=127.0.0.1:3017,key=loup.ece.ucsb.edu > subscribe-to = 127.0.0.1:3017:loup.ece.ucsb.edu > #subscribe-to = 127.0.0.1:3017:localhost > > #wsgi = app > vacuum = true > #harakiri = 10 > max-requests = 100 > #logformat = %(addr) - %(user) [%(ltime)] "%(method) %(uri) %(proto)" > %(status) %(size) "%(referer)" "%(uagent)" > > #path to the virtualenv under which to run > > # post-buffering : buffer post large > post-buffering = 1 > > #buffer-size : internal buffer size for uwsgi packet parsing. > buffer-size = 8192 > > > > ################################################################ > > [uWSGI] getting INI configuration from > /home/kgk/work/bisque/bq057/config//fastrouter.ini > open("./fastrouter_plugin.so"): No such file or directory [core/utils.c > line 3675] > !!! UNABLE to load uWSGI plugin: ./fastrouter_plugin.so: cannot open > shared > object file: No such file or directory !!! > *** Starting uWSGI 2.0.10 (64bit) on [Tue May 26 10:33:23 2015] *** > compiled with version: 4.7.2 on 06 May 2015 10:22:03 > os: Linux-3.16-0.bpo.2-amd64 #1 SMP Debian 3.16.3-2~bpo70+1 (2014-09-21) > nodename: loup > machine: x86_64 > clock source: unix > pcre jit disabled > detected number of CPU cores: 16 > current working directory: /home/kgk/work/bisque/bq057 > detected binary path: /home/kgk/work/bisque/bq057/bqenv/bin/uwsgi > uwsgi shared socket 0 bound to UNIX address /tmp/bisque.sock fd 3 > uwsgi socket 0 mapped to shared socket 0 (/tmp/bisque.sock) fd 3 > your processes number limit is 193509 > your memory page size is 4096 bytes > detected max file descriptor number: 1024 > lock engine: pthread robust mutexes > thunder lock: disabled (you can enable it with --thunder-lock) > uWSGI fastrouter bound on /tmp/bisque.sock fd 3 > uWSGI fastrouter subscription server bound on 127.0.0.1:3017 fd 4 > starting uWSGI fastrouter in cheap mode > Python version: 2.7.3 (default, Mar 13 2014, 11:26:58) [GCC 4.7.2] > Set PythonHome to /home/kgk/work/bisque/bq057/bqenv > *** Python threads support is disabled. You can enable it with > --enable-threads *** > Python main interpreter initialized at 0x153e640 > your server socket listen backlog is limited to 100 connections > your mercy for graceful operations on workers is 10 seconds > mapped 170112 bytes (166 KB) for 1 cores > *** Operational MODE: single process *** > Loading paste environment: > config:/home/kgk/work/bisque/bq057/config/h1_uwsgi.cfg > WSGI app 0 (mountpoint='') ready in 4 seconds on interpreter 0x153e640 > pid: > 9954 (default app) > *** uWSGI is running in multiple interpreter mode *** > spawned uWSGI master process (pid: 9954) > spawned uWSGI worker 1 (pid: 10051, cores: 1) > *** Stats server enabled on /tmp/stats.socket fd: 12 *** > spawned uWSGI fastrouter 1 (pid: 10052) > [uwsgi-subscription for pid 10052] new pool: loup.ece.ucsb.edu (hash key: > 4395) > [uwsgi-subscription for pid 10052] loup.ece.ucsb.edu => new node: > 127.0.0.1:37918 > epoll_ctl(): Invalid argument [core/event.c line 521] > [uWSGI fastrouter pid 10052] leaving cheap mode... > [uwsgi-subscription for pid 10052] loup.ece.ucsb.edu => new node: > 127.0.0.1:45335 > [uwsgi-subscription for pid 10052] loup.ece.ucsb.edu => new node: > 127.0.0.1:56723 > loup.ece.ucsb.edu GET /data_service [200] > loup.ece.ucsb.edu GET /data_service [200] > loup.ece.ucsb.edu GET /data_service [200] > > ############################################ > > $ uwsgi --ini-paste config/fastworker.ini > [uWSGI] getting INI configuration from config/fastworker.ini > *** Starting uWSGI 2.0.10 (64bit) on [Tue May 26 10:33:41 2015] *** > compiled with version: 4.7.2 on 06 May 2015 10:22:03 > os: Linux-3.16-0.bpo.2-amd64 #1 SMP Debian 3.16.3-2~bpo70+1 (2014-09-21) > nodename: loup > machine: x86_64 > clock source: unix > pcre jit disabled > detected number of CPU cores: 16 > current working directory: /home/kgk/work/bisque/bq057 > detected binary path: /home/kgk/work/bisque/bq057/bqenv/bin/uwsgi > your processes number limit is 193509 > your memory page size is 4096 bytes > detected max file descriptor number: 1024 > lock engine: pthread robust mutexes > thunder lock: disabled (you can enable it with --thunder-lock) > uwsgi socket 0 bound to TCP address 127.0.0.1:56723 (port auto-assigned) > fd > 3 > Python version: 2.7.3 (default, Mar 13 2014, 11:26:58) [GCC 4.7.2] > Set PythonHome to /home/kgk/work/bisque/bq057/bqenv > *** Python threads support is disabled. You can enable it with > --enable-threads *** > Python main interpreter initialized at 0x1f186f0 > your server socket listen backlog is limited to 100 connections > your mercy for graceful operations on workers is 60 seconds > mapped 170112 bytes (166 KB) for 1 cores > *** Operational MODE: single process *** > Loading paste environment: > config:/home/kgk/work/bisque/bq057/config/fastworker.ini > WSGI app 0 (mountpoint='') ready in 4 seconds on interpreter 0x1f186f0 > pid: > 10064 (default app) > *** uWSGI is running in multiple interpreter mode *** > spawned uWSGI master process (pid: 10064) > spawned uWSGI worker 1 (pid: 10158, cores: 1) > *** Stats server enabled on /tmp/stats1.socket fd: 9 *** > subscribing to 127.0.0.1:3017:loup.ece.ucsb.edu > _______________________________________________ > uWSGI mailing list > [email protected] > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi >
This is a bug introduced in 2.x serie. Apply this patch for fixing it (will be in 2.0.11): https://github.com/unbit/uwsgi/commit/3de97b9f7e0614bef098b855e36a3c5e3065be37 -- Roberto De Ioris http://unbit.com _______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
