Topic: This is why I get paid to do stuff with computers, fora
Anonymous A started this discussion 14 years ago#22,851
A client manufactures lighting and houseware products. They have a few retail locations and do a lot of sales through their catalogs and website. They sell a lot of customized products and their website is complex. Some of that complexity resulted in poor performance.
My task since late September has been to optimize their site. On October 4th, 10th, and 18th there were deploys of my improvements. During this month, they have run some promotions and the site has shown its weak spots with load spikes, outages, and customer frustration.
Anonymous A (OP) double-posted this 14 years ago, 1 minute later[^][v]#358,295
The WebController powers a lot of JavaScript functionality of the cart and navigation. It was really clunky and average response time had been 0.3 seconds. My fixes were deployed October 10 and the response time for some of its pages is now 0.02 seconds.
Anonymous A (OP) triple-posted this 14 years ago, 2 minutes later, 4 minutes after the original post[^][v]#358,297
The user actions like signing up, logging in, logging out, and resetting your password have been obnoxiously slow. I improved the index definitions, reduced the number of actions the site performed for these tasks, and made it so emails are sent asynchronously. These were simple fixes that did not require risky changes, and the improvements have been better than I expected.
Anonymous B joined in and replied with this 14 years ago, 3 minutes later, 7 minutes after the original post[^][v]#358,299
> The user actions like signing up, logging in, logging out, and resetting your password have been obnoxiously slow. I improved the index definitions, reduced the number of actions the site performed for these tasks, and made it so emails are sent asynchronously. These were simple fixes that did not require risky changes, and the improvements have been better than I expected.
Cool for you but one question? Are you filthy rich yet?
Anonymous A (OP) replied with this 14 years ago, 5 minutes later, 13 minutes after the original post[^][v]#358,301
Today, a feature I built this week was released to render HTML for products in the background after any changes to the products are made. It’s replacing their most failure-prone component and will take the average response time for those pages from over 2 seconds to 0.4 seconds. It’s the first small step in restructuring their complex products from rendering at request time to rendering in the background. Next week, the caching for these catalog pages will take the response time down to 0.1 seconds.
This graph shows what happens with the old code, when it failed.
Anonymous A (OP) double-posted this 14 years ago, 1 minute later, 15 minutes after the original post[^][v]#358,302
@358,299 (B)
My salary is very generous. I might be getting a raise or bonus from my performance with this project, but I’m not going to expect it.
I don’t really aim to become filthy rich. I want a balance in my life.
Anonymous C joined in and replied with this 14 years ago, 4 minutes later, 19 minutes after the original post[^][v]#358,307
poots
Anonymous B replied with this 14 years ago, 29 seconds later, 20 minutes after the original post[^][v]#358,309
Anonymous A (OP) double-posted this 14 years ago, 8 minutes later, 31 minutes after the original post[^][v]#358,316
I have hardly touched the code for their checkout system and it has predictably been getting slower. Just today, the change to make emails send asynchronously was deployed. Over the next week, the average checkout times should drop by a decent amount.
TheSheep !kJ.A4PF7.k joined in and replied with this 14 years ago, 8 minutes later, 39 minutes after the original post[^][v]#358,317
Who developed it in the first place? Iranian code monkeys?
Nice work... also, if you ever feel your wealth went from balanced to rich/filthy rich, feel free to send the difference my way and balance your life out again.
Anonymous A (OP) replied with this 14 years ago, 2 minutes later, 42 minutes after the original post[^][v]#358,318
@previous (TheSheep !kJ.A4PF7.k)
The code was written by somebody who is smart, but more of a developer than an engineer. That would have been okay if the client didn’t change their mind frequently and push the developer on a short schedule.
Anonymous B replied with this 14 years ago, 2 minutes later, 44 minutes after the original post[^][v]#358,319
@358,316 (A)
Say OP wonder if you know? Now a Political junkie using a lot of heavy hit web sites. The best seem to be using HTML 5 with a shit load of Java. On the server side how hard is it on the server?
TheSheep !kJ.A4PF7.k replied with this 14 years ago, 33 seconds later, 44 minutes after the original post[^][v]#358,320
@358,318 (A)
Know that feeling. Code full of "//temporary solution, will optimise" lol
Anonymous A (OP) replied with this 14 years ago, 6 minutes later, 51 minutes after the original post[^][v]#358,324
In short, my work has halved the load on the cluster. These optimizations make it so we can switch to less expensive hardware.
The three dedicated application hosts in the cluster were running at a load average of 0.5 during peak traffic. Now they’re running at only 0.2 for peak loads. They’re quad Xeon servers with 4 GB of RAM each.
The host running in-memory cache has 4 GB RAM and had been thrashing during their component failures. Now it’s smooth sailing.
The outbound data from the database cluster was about 15 megabits a second during peak loads. Now it peaks at about half of that.
squeegee !firstkPE1Q joined in and replied with this 14 years ago, 7 minutes later, 59 minutes after the original post[^][v]#358,325
how thick is your neckbeard?
Anonymous A (OP) replied with this 14 years ago, 47 minutes later, 1 hour after the original post[^][v]#358,336
Anonymous H joined in and replied with this 14 years ago, 1 hour later, 2 weeks after the original post[^][v]#363,839
@OP
Check out this fucking trophy, I won it for best line graphs 2012!
Anonymous I joined in and replied with this 14 years ago, 12 minutes later, 2 weeks after the original post[^][v]#363,840
@previous (H)
This thread is to inspire the neckbeards among us that they can enjoy what they know, while getting paid. You're pretty butthurt, bro.
Anonymous J joined in and replied with this 14 years ago, 1 hour later, 2 weeks after the original post[^][v]#363,842
@358,295 (A) > .03 seconds is "really clunky and average" response time > now at an acceptable speed of .02 seconds > .01 second difference matters
lolneckbeards
(Edited 2 minutes later.)
Anonymous I replied with this 14 years ago, 18 minutes later, 2 weeks after the original post[^][v]#363,846
@previous (J) > mistaking 0.3 for 0.03 > judging by the average without knowing standard deviation
ISHYGDDT
Anonymous J replied with this 14 years ago, 1 hour later, 2 weeks after the original post[^][v]#363,858
@previous (I)
even with correct decimal place this is very neckbeardian in nature
Anonymous I replied with this 14 years ago, 1 hour later, 2 weeks after the original post[^][v]#363,861
Anonymous A (OP) replied with this 14 years ago, 10 hours later, 2 weeks after the original post[^][v]#363,979
@358,319 (B)
Here’s how the changes affected the network traffic to the database. This has made the cluster much more internally responsive, with positive results for end users.
Anonymous A (OP) double-posted this 14 years ago, 2 minutes later, 2 weeks after the original post[^][v]#363,981
@358,319 (B)
And then here’s the effect on load average for one of the three webservers. The load spikes resulted in outages and customer service complaints. The reliable results after optimization indicates this application can easily switch from dedicated hardware to a cloud-based cluster.
Anonymous K joined in and replied with this 14 years ago, 1 day later, 2 weeks after the original post[^][v]#364,503