{"id":25049,"date":"2015-12-12T15:25:21","date_gmt":"2015-12-12T13:25:21","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=25049"},"modified":"2015-12-12T15:25:21","modified_gmt":"2015-12-12T13:25:21","slug":"how-far-can-you-go-with-haproxy-and-a-t2-micro","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2015\/12\/12\/how-far-can-you-go-with-haproxy-and-a-t2-micro\/","title":{"rendered":"How Far Can You Go With HAProxy and a t2.micro"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>Here&#8217;s an interesting set of experiments trying to answer the question of how far can you go with <a href=\"http:\/\/hipsterdevblog.com\/blog\/2014\/12\/19\/how-far-can-you-go-with-haproxy-and-a-t2-dot-micro\/\">HAProxy setup on the smallest of the Amazon EC2 instances<\/a> &#8211; t2.micro (1 virtual CPU, 1 GB of RAM). \u00a0Here&#8217;s the summary.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/12\/460loader.png?ssl=1\" rel=\"attachment wp-att-25050\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"25050\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2015\/12\/12\/how-far-can-you-go-with-haproxy-and-a-t2-micro\/460loader\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/12\/460loader.png?fit=921%2C481&amp;ssl=1\" data-orig-size=\"921,481\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"460 requests\/second\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/12\/460loader.png?fit=660%2C345&amp;ssl=1\" class=\"aligncenter size-medium wp-image-25050\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/12\/460loader-500x261.png?resize=500%2C261&#038;ssl=1\" alt=\"460 requests\/second\" width=\"500\" height=\"261\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/12\/460loader.png?resize=500%2C261&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/12\/460loader.png?resize=768%2C401&amp;ssl=1 768w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/12\/460loader.png?w=921&amp;ssl=1 921w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<blockquote><p>At 460 req\/second response times are mostly a flat ~300 ms, except for two spikes. I attribute this to TCP congestion avoidance as the traffic approaches the limit and packets start to get dropped. After dropped packets are detected the clients reduce their transmission rate, but eventually the transmission rate stabilizes again just under the limit. Only 1739 requests timeout and 134918 succeed.<\/p>\n<p>[&#8230;]<\/p>\n<p>It seems that the limit of the t2.micro is around 500 req\/second even for small responses.<\/p><\/blockquote>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Here&#8217;s an interesting set of experiments trying to answer the question of how far can you go with HAProxy setup on the smallest of the Amazon EC2 instances &#8211; t2.micro (1 virtual CPU, 1 GB of RAM). \u00a0Here&#8217;s the summary. At 460 req\/second response times are mostly a flat ~300 ms, except for two spikes. &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2015\/12\/12\/how-far-can-you-go-with-haproxy-and-a-t2-micro\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">How Far Can You Go With HAProxy and a t2.micro<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"How Far Can You Go With HAProxy and a t2.micro #networking #stats #performance","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,6,133,62],"tags":[3333,3400,281,1057,1041],"keyring_services":[],"class_list":["post-25049","post","type-post","status-publish","format-standard","hentry","category-general","category-linux","category-sysadmin","category-technology","tag-amazon-ec2","tag-haproxy","tag-networks","tag-performance","tag-statistics"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27594,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/20\/haproxy-and-nginx-abuse-and-rate-limiting\/","url_meta":{"origin":25049,"position":0},"title":"HAProxy and Nginx abuse and rate limiting","author":"Leonid Mamchenkov","date":"May 20, 2017","format":false,"excerpt":"My brother wrote a follow-up - HAProxy abuse filtering and rate limiting - to his previous post -\u00a0Nginx rate limit by user agent (control bots). \u00a0This is just a tip of the iceberg that we are working with at the office, but it's pretty cool. Hopefully, soon enough our Ansible\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":23425,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/01\/29\/on-amazon-ec2-instances\/","url_meta":{"origin":25049,"position":1},"title":"On Amazon EC2 instances","author":"Leonid Mamchenkov","date":"January 29, 2015","format":false,"excerpt":"I am staring at the t2.micro (the smallest available instance type) server running MySQL 5.5.40 (using the my-huge.cnf example configuration shipped with MySQL, which ironically matches t2.micro specs). \u00a0Here's why (as reported by Nagios for the last few hours): Queries per second avg: 12888.839 The number is fluctuating between about\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":25061,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/12\/17\/amazon-ec2-t2-nano-instances\/","url_meta":{"origin":25049,"position":2},"title":"Amazon EC2 t2.nano instances","author":"Leonid Mamchenkov","date":"December 17, 2015","format":false,"excerpt":"If you thought t2.micro was a tiny machine, I have news for you - Amazon announced t2.nano instance type. \u00a0It features 512 MB of RAM, 1 vCPU, and up to two Elastic network interfaces. \u00a0Price for on-demand instance - $0.0065 per hour. This instance type is perfect for small websites,\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27312,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/09\/amazon-aws-mtu-for-ec2\/","url_meta":{"origin":25049,"position":3},"title":"Amazon AWS : MTU for EC2","author":"Leonid Mamchenkov","date":"February 9, 2017","format":false,"excerpt":"I came across this handy Amazon AWS manual for the maximum transfer unit (MTU) configuration for EC2 instances. \u00a0This is not something one needs every day, but, I'm sure, when I need it, I'll otherwise be spending hours trying to find it. The maximum transmission unit (MTU) of a network\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/02\/packet-headers-500x337.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27586,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/14\/haproxy-sni\/","url_meta":{"origin":25049,"position":4},"title":"HAProxy SNI","author":"Leonid Mamchenkov","date":"May 14, 2017","format":false,"excerpt":"\"HAProxy SNI\" is pure gold! If you want to have a load balancer for HTTPS traffic, without managing SSL certificates on the said load balancer, there is a way to do so. The approach is utilizing the Server Name Indication (SNI) extension to the TLS protocol. \u00a0I knew about it\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":25053,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/12\/12\/cpu-steal-time-now-on-amazon-ec2\/","url_meta":{"origin":25049,"position":5},"title":"CPU Steal Time. Now on Amazon EC2","author":"Leonid Mamchenkov","date":"December 12, 2015","format":false,"excerpt":"Yesterday I wrote the blog post, trying to figure out what is the CPU steal time and why it occurs. \u00a0The problem with that post was that I didn't go deep enough. I was looking at this issue from the point of view of a generic virtual machine. \u00a0The case\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/25049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=25049"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/25049\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=25049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=25049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=25049"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=25049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}