These are chat archives for mirumee/saleor

3rd
Jan 2019
jdivins
@jdivins
Jan 03 10:05
Happy new year everyone! I want to know for a site that has between 100 and 200 users/hour how many djangos instances needs to be running? Are you using some front cache like varnish? I ask this for the old saleor version, the version that uses django templating not react.
Thank you very much!
Artur Smęt
@artursmet
Jan 03 10:14
Hello @jdivins, thanks for reaching out. In general it's not that straightforward to say how many instances you need for given number of users on site. To discover the correct values or estimate them you could measure the performance of your app, becasue required compute power depends on your templates and SQL queries. You could take a look on the article on our blog https://blog.mirumee.com/application-performance-testing-9e6af4439da and do similar tests for your project
Regarding front-end cache like Varnish - yes, it's possible to use the caching system like Varnish or Cloudfront with saleor, but you'll have to cover your views with appropriate headers (see https://docs.djangoproject.com/en/2.1/topics/cache/#controlling-cache-using-other-headers), because some views must not be cached like checkout, dashboard or other user-specific places
it's safe to configure front caching to cache only the views that contain cache-control header and you could decide on your own how much time the cache system will keep your content. For example product listing for 30s, single product for 5 min etc.
jdivins
@jdivins
Jan 03 10:36
Have you an estimation for some site?
Artur Smęt
@artursmet
Jan 03 10:42
@jdivins Estimation of number of servers?
it also depends on the server where you're deploying. What kind of platform are you using? Some cloud instances?
jdivins
@jdivins
Jan 03 10:44
I am going to use google cloud
Have you and stimation of this site: https://www.prettygreen.com/
Artur Smęt
@artursmet
Jan 03 10:50
@jdivins I don't, but you could start with two n1-standard-1 instnaces for your project and then fire some locust or siege against the site and measure the traffic. It's really hard to say without measurments how much servers you'll need to handle your traffic well. If you have sudden traffic peaks I recommend to implement caching with some CDN (you could try the one delivered by google cloud)
also when you see that cpu is over-utilized you may select an instance with more cores and scale number of uwsgi processes. Selecting underlying hardware is more like a process instead of a magic formula to be honest.
Filip Kucharczyk
@Pacu2
Jan 03 11:38
Just for the reference: I've handled around 900 requests per minute on a 7$ Heroku instance with an average server response time 330ms. Just a plain Saleor and CloudFront for static images.
jdivins
@jdivins
Jan 03 11:50
@Pacu2 Thank you very much for your experience!