► What should I test next? ► AWS is expensive - Infra Support Fund: buymeacoffee.com/antonputra ► Benchmarks: ruclips.net/p/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn&si=p-UOaVM_6_SFx52H
Great video as usual! would be a bit different from performance benchmark. but I'd really love the comparison between serverless (e.g. AWS Lambda or Fargate) vs serverfull (e.g. EC2) in terms of performance, latency, and ultimately cost. I think when it comes to hundreds or even thousands of RPS, it makes sense to compare between these two.
Thanks! To be fair nobody (even me as a programmer) are suddenly switching a reverse proxy like Nignx and built their own using Pingora. What about dealing with specific location/paths? What about implementing rate limiting? What about static content? If you use a reverse proxy like Nginx across multiple domains and projects, you don't gonna implement a reverse proxy from the ground up. These are just two fully different ways. Mostlikely most engineers already need to spend a lot of time on the programming on the applications itself, Pingora would be a project on it own.
@@AntonPutra So Ingress could be Nginx, HAProxy, Traefik and more.. But even k8s for a homelab is for some people already next level. Some just have bare metal or a simple Proxmox VM with Nginx..
@@stxnw I'm not "just" building a homelab. First of all I work for a big enterprise. And second of all, I basically run a datacenter at home within server racks.
Great video! I'd be curious to see how h2o compares to Nginx; their benchmarks show them beating Nginx, and it ranks highly on the Techempower framework benchmarks.
@@vuongphaminh2293 He'll get to it eventually. It has its own configuration learning curve since it has more features than NGINX. Plus running the test for hours on end.
It would be interesting to see results when HTTP is used instead of HTTPS, because HTTPS could take significant percent of CPU. With HTTP differences will be probably more emphasized.
Very interesting. Never heard of Pingora before, but being programmable is certainly an advantage. Instead of waiting for the supplier to add that feature to their custom config DSL you just add it yourself. Looks very robust and reliable.
Python is slow and a pain to setup in general for webservers. Last time I was working with FastAPI Gunicorn using Uvicorn (asgi) workers was vastly faster than uWSGI. Don't use uWSGI if you can do Async/Await.
i'd hoped the test would continue until the breaking point of pingora to see its overloaded behavior. iirc nginx is more preferable due to connection blocking when overloaded
Please don't use that black backdrop. I have my brain working and can follow you as you speak. At the same time I want to observe other values that you are currently speaking about. You made it very hard in this video!
Thank you, this benchmark comparison between Pingora and Nginx was incredibly insightful. I appreciate the detailed analysis and the effort you put into making this video.
@twitchizle CPU usage is based on the average core usage. If your app can only use one core but two ar available, your app will have a bottleneck with only 50% CPU usage.
Bs, you confusing CPU utilization with CPU usage. And in current test , rust based proxy is less effective both by cpu usage and per watt effectiveness
So nginx is almost as fast while having a thousand times more plugins, features, community, business support and LLM training. Pingora would have to be 10x more performant to be worth considering. Like some Specialized C/C++ servers.
Pingora is a framework, you can do tons of stuff with it and load balancer was only one usecase. Nginx is nothing more than just a reverse proxy and creating new plugins for it is not that easy.
Agree. Nginx does the job and does it well while having a much larger community for support. If you need more performance, you can scale it up. If you're running an application that needs this kind of throughput, you can definitely allocate more resources to your proxy.
not only that, you'd have to learn rust and learn the pingora api to make it work. It would take you like 5 years to write the perfect pingora proxy config :D
Try to make python again but using socketify it is much faster compared to go fiber, gin, gorilla and others, socketify is a python framework that uses c++
► What should I test next?
► AWS is expensive - Infra Support Fund: buymeacoffee.com/antonputra
► Benchmarks: ruclips.net/p/PLiMWaCMwGJXmcDLvMQeORJ-j_jayKaLVn&si=p-UOaVM_6_SFx52H
Would like to request HAproxy with nginx
Did you use a release build with pingora? Aka `cargo build --release`
Thanks for these benchmarks. Now I know what framework to use for my BLAZINGLY FAST, high-performance web app (it’s a CRUD app with 10 users)
No it's 0 user
⚠If you can improve Nginx or Pingora, please send me a PR, and I'll rerun the test! ⚠
With the mention of disabling the logs to create a fair comparison, why don't you compare nginx with and without logging?
@@gizlas I think each test cycle costs $50 bucks?
Thank you for making this benchmark video. I had been wondering how these would compare.
Great video as usual!
would be a bit different from performance benchmark. but I'd really love the comparison between serverless (e.g. AWS Lambda or Fargate) vs serverfull (e.g. EC2) in terms of performance, latency, and ultimately cost. I think when it comes to hundreds or even thousands of RPS, it makes sense to compare between these two.
Thanks! To be fair nobody (even me as a programmer) are suddenly switching a reverse proxy like Nignx and built their own using Pingora. What about dealing with specific location/paths? What about implementing rate limiting? What about static content? If you use a reverse proxy like Nginx across multiple domains and projects, you don't gonna implement a reverse proxy from the ground up. These are just two fully different ways. Mostlikely most engineers already need to spend a lot of time on the programming on the applications itself, Pingora would be a project on it own.
agree, if you are at the scale of cloudflare then it makes sense, otherwise just use k8s + ingress when needed
@@AntonPutra So Ingress could be Nginx, HAProxy, Traefik and more.. But even k8s for a homelab is for some people already next level. Some just have bare metal or a simple Proxmox VM with Nginx..
@@MelroyvandenBerglol you shouldn’t be on this channel if you are only building a homelab
@@stxnw I'm not "just" building a homelab. First of all I work for a big enterprise. And second of all, I basically run a datacenter at home within server racks.
Nice!!! :)
I was waiting for this one, thanks ^^
Great video! I'd be curious to see how h2o compares to Nginx; their benchmarks show them beating Nginx, and it ranks highly on the Techempower framework benchmarks.
I would like to see h2o's benchmark too!
can you do HAproxy vs Nginx ?
we've asked repeatedly but... he didn't do it
@@vuongphaminh2293 we need HAproxy since it's used more than Pingora and HAproxy is a direct competitor of Nginx as reverse proxy
@@vuongphaminh2293 He'll get to it eventually. It has its own configuration learning curve since it has more features than NGINX. Plus running the test for hours on end.
I'm interested in this also since those two are C based.
Please @AntonPutra, benchmarks Swift hummingBird/vapor vs golang or etc.
ok :)
Thank you Anton
Thank you that wass perfect as always.
Keep up the good work. Respect 😊
It would be interesting to see results when HTTP is used instead of HTTPS, because HTTPS could take significant percent of CPU. With HTTP differences will be probably more emphasized.
0:30 I can see from blurred images that Nginx is green 😅
Congrats, now watch it until end
nice job 👍
nginx vs envoy please
This is interesting, in terms of absolute numbers 40k request per second doesn't seem much. Are proxies more resource intensive than regular servers ?
wow, nice thing, never heard about pingora
please create SQL vs NOSQL comparison! e.g. Postgres vs Mongo
would be great comperision.
Раст - сила, JS - могила
haha
awesome! this one is really useful info!
Test haproxy , nginx and pingora
Very interesting. Never heard of Pingora before, but being programmable is certainly an advantage. Instead of waiting for the supplier to add that feature to their custom config DSL you just add it yourself. Looks very robust and reliable.
its nice but the documentation of it sucks.
Took a peak at the sources; how do you build aputra/load-tester ?
it's a rust client instrumented with prometheus metrics, i have similar clients in my repo
@@AntonPutra Are the sources public for it? I looked in the repo but couldn't find.
good work
🐍 uWSGI VS Gunicorn
Python is slow and a pain to setup in general for webservers. Last time I was working with FastAPI Gunicorn using Uvicorn (asgi) workers was vastly faster than uWSGI. Don't use uWSGI if you can do Async/Await.
i'd hoped the test would continue until the breaking point of pingora to see its overloaded behavior. iirc nginx is more preferable due to connection blocking when overloaded
It did reach a breaking point at around 47k RPS
Hello Anton,
Can you make a video comparing NGINX with OPENLiteSpeed?
Thank you in advance.
sure, added to my list
Thank you.....
Why does nginx request per second plateau then nosedive around 60% cpu utilisation? I would expect it to scale like pingora.
Please don't use that black backdrop. I have my brain working and can follow you as you speak. At the same time I want to observe other values that you are currently speaking about. You made it very hard in this video!
can we do Actix with actors (default) vs Actix with websocket
ok i'll take a look
HAProxy vs Pingora next?
Rust is top!
Facts! 🦀
Thank you, this benchmark comparison between Pingora and Nginx was incredibly insightful. I appreciate the detailed analysis and the effort you put into making this video.
finally a worthy opponent for nginx
Not really. Nginx is still much more advanced
It is so over for nginx 😂
Proxies are so complicated, to swap another due latency, especially on complicated systems with load balancers etc...
true, most companies don't need 'another' proxy. it only makes sense for those that have business around it
Keep in mind that higher CPU usage sometimes mean that it has a better resources usage
What, no. This aint game FPS benchmark
true
@twitchizle CPU usage is based on the average core usage. If your app can only use one core but two ar available, your app will have a bottleneck with only 50% CPU usage.
Bs, you confusing CPU utilization with CPU usage. And in current test , rust based proxy is less effective both by cpu usage and per watt effectiveness
So nginx is almost as fast while having a thousand times more plugins, features, community, business support and LLM training.
Pingora would have to be 10x more performant to be worth considering. Like some Specialized C/C++ servers.
Pingora is a framework, you can do tons of stuff with it and load balancer was only one usecase. Nginx is nothing more than just a reverse proxy and creating new plugins for it is not that easy.
I agree with you that for 99% of the cases it is true, but if somebody have the time and money to get something more performant than why not
Agree. Nginx does the job and does it well while having a much larger community for support.
If you need more performance, you can scale it up. If you're running an application that needs this kind of throughput, you can definitely allocate more resources to your proxy.
not only that, you'd have to learn rust and learn the pingora api to make it work. It would take you like 5 years to write the perfect pingora proxy config :D
@@isaacdruin
scale up cost money
Try to make python again but using socketify it is much faster compared to go fiber, gin, gorilla and others, socketify is a python framework that uses c++
Pls do C# .NET 8 vs Node.js
wow pingora is way too powerful
It’s not pronounced thouthand, it’s thousand
Ok, my conclusion: nginx started using more cpu, was slower (latency) at the end , so on high workload -pingora works better.