[TriPython] Places to look at performance tuning

Ken MacKenzie ken at mack-z.com
Tue Jun 6 11:43:56 EDT 2017


So I am in the demo and test phase of an early ReSTful API for reporting.

Currently a wider scale report set request hits the following marks:

TTFB: ~20s
Record Count: ~92k
Download Size: 15.8MB

Details:
Web Server: NGINX
Python App Server: Gunicorn
Web Framework: Falcon
Python version: 3.5 (in a venv)
DB: MS SQL Server Express using SQL Alchemy + pyodbc

Webserver OS: CentOS 7
Gunicorn is setup with 4 workers, on a private port, nginx does a proxy
pass to the port

DB Details, the table in question has a total of about 8 million rows.
Sample query execution within SQL Server Mgmt Studio is ~7s

So my question is which of the following would be a better target to
improve performance, or do I need to as my performance should be considered
good enough.  I mean the server in this case is a surplus dual core desktop
right now.

add gzip compression to nginx for proxys
switch gunicorn to use a unix socket instead of a tcp port
consider leaner SQL and JSON marshaling requests instead of ORM's and
dictionary bundles.

Appreciate and advice or suggestions.  Thank you.
-------------- next part --------------
   So I am in the demo and test phase of an early ReSTful API for reporting.
   Currently a wider scale report set request hits the following marks:
   TTFB: ~20s
   Record Count: ~92k
   Download Size: 15.8MB
   Details:
   Web Server: NGINX
   Python App Server: Gunicorn
   Web Framework: Falcon
   Python version: 3.5 (in a venv)
   DB: MS SQL Server Express using SQL Alchemy + pyodbc
   Webserver OS: CentOS 7
   Gunicorn is setup with 4 workers, on a private port, nginx does a proxy
   pass to the port
   DB Details, the table in question has a total of about 8 million rows.**
   Sample query execution within SQL Server Mgmt Studio is ~7s
   So my question is which of the following would be a better target to
   improve performance, or do I need to as my performance should be
   considered good enough.** I mean the server in this case is a surplus dual
   core desktop right now.
   add gzip compression to nginx for proxys
   switch gunicorn to use a unix socket instead of a tcp port
   consider leaner SQL and JSON marshaling requests instead of ORM's and
   dictionary bundles.
   Appreciate and advice or suggestions.** Thank you.


More information about the TriZPUG mailing list