Hi Matt, Also, take a look at the default settings at http://erlang.org/doc/man/erl.html#async_thread_pool_size or http://docs.basho.com/riak/kv/2.1.4/using/performance/erlang/ (see left column).
- Sairam On Fri, Jun 10, 2016 at 12:10 PM, Matt Hornsby <[email protected]> wrote: > Thanks for the reply Sairam - these are excellent suggestions. I will give > them a try. I am in fact building a front-end web server serving json. > These are for internal APIs for my company, so perhaps HTTP/json is not the > most efficient approach possible. However, I did want to show what phoenix > & elixir are capable of next to the well-established Java stack that my > company currently wants to continue to invest in. > > I am currently not really encoding anything(I don't think). My view has a > render method that looks like this: > > def render("product.json", %{product: product}) do > %{id: product.id, > name: product.name, > barcode: product.barcode, > image: product.image, > price: product.price, > market_id: product.market_id} > end > > Thanks for the great information - I'll see if I can change the file > descriptors and disable some of the plugs to see if that changes much. My > goal was to see what Phoenix & Elixir looked like out of the box without a > lot of tweaking, but perhaps I just made some really naive newbie mistakes. > As far as docker goes, I mainly did that so that it would be really easy to > get running up on EC2. Currently, I can't seem to get yum to find the > elixir package from the default Amazon Linux AMIs, so its been kind of a > pain to try to get Elixir set up properly. > > On Thursday, June 9, 2016 at 11:20:03 PM UTC-7, Sairam wrote: >> >> I am currently learning Elixir. I have read a handful of posts on this. >> What I am saying may not be completely accurate or old(since I only read >> about these in various blogs) >> >> Assuming you are building a front-end web server which serves json? If >> not, RPC would be a faster mechanism to use rather than exposing http >> endpoints. >> Also, minor note: json is slower compared to rest of the encodings like >> msgpack if this is an option. (Link to Uber Blog >> <https://eng.uber.com/trip-data-squeeze/> where analysis was made) >> >> You need to set MIX_ENV=prod when compiling elixir >> http://www.slideshare.net/petegamache/real-world-elixir-deployment#23 >> Note: t2.medium is 2 vCPUs with 4 Gigs. >> >> May be you don't even need all the Plugs which Phoenix library provides >> by default like Cookies etc., esp., given you don't use ecto. >> >> Also, horizontal scaling is another aspect you might want to consider to >> show scale up and scale down. >> Also, there is a note about no. of open File Descriptors by default Linux >> has. Change that to infite. >> >> I have not seen/read many blog posts where Docker is used for Elixir. May >> be, you could try it on a bigger box on Heroku if possible to get a end to >> end benchmark (which also takes care of network connectivity) >> >> >> On Fri, Jun 10, 2016 at 10:50 AM, Matt Hornsby <[email protected]> >> wrote: >> >>> Hi all - I could use some help. I am currently evaluating Elixir and >>> Phoenix for a performance-critical application for a Fortune 500 company. >>> This could be another great case study for Elixir and Phoenix if I can show >>> that it can meet our needs. Initial performance testing looked phenomenal, >>> but I am running into some performance concerns that will force me to >>> abandon this tech stack entirely if I cannot make the case. >>> >>> The setup: an out-of-the box phoenix app using mix phoenix.new. No ecto. >>> Returning a static json response. Basically a hello-world app. >>> The hardware >>> >>> - Macbook Pro, 16gb, 8 core, 2.5ghz, running elixir/phoenix >>> natively, and also using docker container >>> - Amazon EC2 T2.Medium running Elixir Docker image >>> >>> The tests: used ab, wrk, siege, artillery, curl with a variety of >>> configurations. Up to 100 concurrent connections. Not super scientific, i >>> know... but >>> >>> No matter what I try, Phoenix logs out impressive numbers to stdout - >>> generally on the order of 150-300 microseconds. However, none of the load >>> testing tooling agrees. No matter the hardware or load test configuration, >>> I see around 20-40 ms response times. The goal for the services that I am >>> designing is 20ms and several thousand requests per second. The load tests >>> that Chris McCord and others have published suggest that I should be able >>> to expect 3ms or less when running localhost, but i'm not seeing anything >>> close to that. >>> >>> Would anyone be willing to work with me to look at some options here? >>> I'd be incredibly grateful. Don't make me go back to Java, please :) >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "elixir-lang-talk" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/elixir-lang-talk/6a625e85-8c8d-43c7-9c1b-a204db09307a%40googlegroups.com >>> <https://groups.google.com/d/msgid/elixir-lang-talk/6a625e85-8c8d-43c7-9c1b-a204db09307a%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elixir-lang-talk/6d295e26-6acd-4078-8488-2317ac923ae5%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-talk/6d295e26-6acd-4078-8488-2317ac923ae5%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "elixir-lang-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-talk/CAGDxsuo8nmDEo-EtdEYS-k7s1PjVRZGVJ0B968FNQGECrmoxxA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
