Blog

The performance improvements in Ruby 3.3 with YJIT
October 31, 2024 · 5 min read
Ruby 3.1.2 vs 3.3.5+YJIT in production In the previous article (https://updown.io/blog/weird-results-comparing-ruby-3-1-3-2-3-3-with-jemalloc-and-yjit) I discussed about my upgrade process from Ruby 3.1 to ruby 3.3, discovered a potential regression in a specific scenario, and ended up with synthetic benchmark results looking pretty great: | /files/671d0e3dcd6850ba2f442c60.svg | ...
Weird results comparing ruby 3.1, 3.2 & 3.3 with jemalloc and YJIT
October 25, 2024 · 13 min read
updown.io has been running on ruby 3.1 since... git log -p .ruby-version... August 2022 so for slighly over 2 years now. More specifically ruby 3.1.2 with jemalloc for better performance (https://updown.io/blog/ruby-jemalloc-results-for-updown-io). _Note: I am not using YJIT in production yet, as my benchmark in 3.1.2 for updown.io daemon code showed a mere 5-10% CPU time perf...
My one man company stack and which services I recommend (in 2024)
September 13, 2024 · 12 min read
A lot of people are wondering about the technical stack used by updown.io and more generaly by one-man tech companies. A while back (2016) I filled up this information on StackShare (https://stackshare.io/adrienjarthon/updown-io). I haven't kept it up-to-date and I don't like to have to maintain yet another third party documentation so it's unlikely I'll update it again. Though it changes very...
The funny rules of SpamAssassin in 2023 (deep dive)
December 04, 2023 · 11 min read
This investigation was surprising to me so I thought it would be interesting to share my findings and I hope you'll like it. Some of my clients occasionally reported that the updown confirmation email (used to confirm a new email address, provided by Devise (https://github.com/heartcombo/devise/blob/main/app/views/devise/mailer/confirmation_instructions.html.erb)) had been classified as spa...
Using `destroy_async` with Mongoid 8?
November 15, 2023 · 5 min read
I wanted to improve the responsiveness of the Delete account action, which could be slow for bigger/older accounts due to the many associated records to be destroyed (downtimes, metrics) being sparsely distributed in the database. This sounded like a wonderfully perfect use-case for the recent dependent: :destroy_async option [added in Rails 6.1.](https://www.bigbinary.com/blog/rails-...
Welcome to the new updown.io blog 🎉
November 04, 2023 · 2 min read
For a while I've been thinking of "starting a tech blog". Well technically I already started one a while back on Medium (https://medium.com/@adrienjarthon), but I didn't like Medium because of the—let's say poor—reader experience so I didn't want to write on it nor to promote it. I saw many blog tech and hosting platform rise (and die) in the following years, everytime telling myself: _"ma...
MongoDB SSD incident postmortem
April 06, 2019 · 5 min read
Note: This article was initially published on Medium (https://medium.com/@adrienjarthon/updown-io-incident-postmortem-f4707cd20091) in 2019 and later moved to this official updown.io blog. All times will be given in UTC+2 (CEST) to match monitoring tools screenshots. April 3rd 2019 at 2:30 am: updown.io primary database (MongoDB) server starts to answer queries about 200 times ...
Ruby + jemalloc: Results for updown.io
April 01, 2017 · 2 min read
Note: This article was initially published on Medium (https://medium.com/@adrienjarthon/ruby-jemalloc-results-for-updown-io-d3fb2d32f67f) in 2017 and later moved to this official updown.io blog. I recently read this great article (https://www.levups.com/en/blog/2017/optimize_ruby_memory_usage_jemalloc_heroku_scalingo.html) about compiling ruby with jemalloc for slightly better performa...