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.

Reply via email to