Derek Haynes

LinuxのCPUステートを理解する

BY Derek Haynes

Linuxサーバが遅いときは、通常「top」コマンドを使用してCPUの測定結果を表示します。 しかしこの2文字の略語は何を意味しているのでしょうか? (なんて意味?) 3つのCPUステート  少し立ち戻ると、CPUには3つのステートがあります。

Read More →

 

Scoutによる極秘の四大可観測性プランとは

BY Derek Haynes

可観測性は、ますます重要になってきています。最近のアプリやサービスは、以前よりも障害への回復力が高いため、障害もふわっと予想もしない形で発生します。こうした障害は非常に偏っていて、チャートに浮かび上がってきづらい傾向があります。例えばあるアプリでは、膨大な関連データベースの記録を持つ特定のユーザー1件に対してだけ、パフォーマンスが顕著に悪くなるという状況が発生しているかもしれません。これは、妥当なスループットを持つアプリの応答時間のチャートからは識別が難しいでしょう。

Read More →

 
Q1i3xcc5sacchvdyxvtm

Is your Django app slow? Think like a data scientist, not an engineer

BY Derek Haynes

I'm an engineer by trade. I rely on intuition when investigating a slow Django app. I've solved a lot of performance issues over the years and the short cuts my brain takes often work. However, intuition can fail. It can fail hard in complex Django apps with many layers (ex: ...

Read More →

 
9nqsryjrtfg5tuqx97a1

Google Colab+Prophet+Scout = Easy Web Traffic Forecasts

BY Derek Haynes

Forecasting traffic to your web app is important for capacity planning, but generating a seasonally accurate model of your traffic is pretty daunting. If you under-forecast: Your app servers may become oversaturated, and requests will start backing up in a queue. If many requests are database-heavy, your database load may ...

Read More →

 

Scoutを活用したActiveRecordのスロークエリ検出

BY Derek Haynes

Railsアプリに安定したトラフィックが流入し始めると、SQLのスロークエリという問題が生じることがあります。 find_by_sql などのシンプルなものを利用して、大きく改善を図ることが可能ですが、そもそもアプリが遅くなっている原因をどうしたら簡単に調べることができるのでしょうか?

Read More →

 

Ruby Interpreters: What You Need to Know

BY Derek Haynes

Using the right Ruby interpreter to run your programs can make all the difference. Unfortunately, it can be tough to find resources about different Ruby interpreter options, or about how to choose the right one. Below, we’ve compiled a wealth of information about interpreters in Ruby. Even if you start this article asking "What is a Ruby interpreter?", you’ll learn exactly what you need to know to make the right decision.

Read More →

 

Scout APM now supports Python 2.7!

BY Derek Haynes

We launched our Python agent a few months ago, supporting Python 3.4+.

Read More →

 

Elixir Overview and Tutorial (as told in a Wizard fable)

BY Derek Haynes

Interested in Learning the Elixir language? Join us in this entertaining Elixir tutorial and overview.

Read More →

 

Quick blog post about throughput sparkline feature

BY Derek Haynes

We've had sparkline charts of response time for a long time on our Endpoints tab, and now have extended them to the throughput column as well. Quickly isolate endpoints that are spiking with traffic, and drill down into them to diagnose. No need to hunt to see what's causing an unusual trend in traffic.

Read More →

 

11 Awesome Elixir Jobs for 2019 (and some incredible perks)

BY Derek Haynes

Elixir has Arrived Elixir is a programming language that is beginning to gather steam. Originally released in 2011, it is a functional and dynamic language, and runs on the Erlang VM (Virtual Machine). Elixir is highly scalable and fault tolerant. In other words, Elixir is perfect for today's software landscape of microservices and cloud computing.

Read More →

 

Ruby Agent 2.4.21 is out with a bug fix, a new configuration option, and a debug option

BY Derek Haynes

App & Background Integration Installation As reported on Issue #228, if scout_apm is disabled on a node via the configuration monitor = false, we don't intend to install any instruments, but a few snuck in anyway.

Read More →

 

Upgraded Ecto logging hooks to Telemetry in new Agent 0.4.8

BY Derek Haynes

Recently the Ecto library released a major update - Version 3.0. As part of the changes, some of the hooks that Scout relied on to capture data have changed. No longer can we hook into Ecto's logging system to extract information about queries being run, and instead we have a proper Telemetry event to listen to.

Read More →

 

Birds of a Fiber: A look at Falcon, a modern asynchronous web server for Ruby

BY Derek Haynes

What is Falcon? The GitHub Readme describes Falcon as, "... *a multi-process, multi-fiber rack-compatible HTTP server ... Each request is executed within a lightweight fiber and can block on up-stream requests without stalling the entire server process."* The gist: Falcon aims to increase throughput of web applications by using Ruby’s Fibers to be able to continue serving requests while other requests are waiting on IO (ActiveRecord queries, network requests, file read/write, etc).

Read More →

 

Unicorn vs. Puma vs. Passenger: which app server is right for you?

BY Derek Haynes

The Ruby app server ecosystem has consolidated around three app servers in 2017: Unicorn , Puma , and Passenger 5 . What specific problems must an app server solve for Ruby? How do you pick the right app server? Is there a need for each of these app servers in ...

Read More →

 

Making sense of ActiveRecord joins, includes, preload, and eager_load

BY Derek Haynes

Like a pair of jumper cables, ActiveRecord's joins , includes , preload , and eager_load methods are incredibly useful, but also very dangerous when used incorrectly. Knowing when and where to use each approach - and even when to combine them - can save you considerable trouble as your app ...

Read More →

 

Understanding Linux CPU stats

BY Derek Haynes

Your Linux server is running slow, so you follow standard procedure and run top . You see the CPU metrics: But what do all of those 2-letter abbreviations mean? The 3 CPU states Let's take a step back. There are 3 general states your CPU can be in: Idle , ...

Read More →

 

Restricting process CPU usage using nice, cpulimit, and cgroups

BY Derek Haynes

The Linux kernel is an incredible circus performer, carefully juggling many processes and their resource needs to keep your server humming along. The kernel is also all about equity: when there is competition for resources, the kernel tries to distribute those resources fairly. However, what if you've got an important ...

Read More →

 

Understanding disk inodes

BY Derek Haynes

You try creating a file on a server and see this error message: No space left on device ...but you've got plenty of space: df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 10321208 3159012 6637908 33% / Who is the invisible monster chewing up all of your space? Why, ...

Read More →

 

Understanding CPU Steal Time - when should you be worried?

BY Derek Haynes

A big thanks to Eric Lindvall of Papertrail for adding steal time to Scout's CPU Usage Plugin and helping out on this blog post! Netflix tracks CPU Steal Time closely. In fact, if steal time exceeds their chosen threshold, they shut down the virtual machine and restart on a different ...

Read More →

 

Understanding Disk I/O - when should you be worried?

BY Derek Haynes

Our co-author today is Christian Paredes , Senior System Administrator at Blue Box Group , a Ruby on Rails-focused web host that specializes in providing the operations expertise required to keep powerful apps running at peak performance. Christian keeps Blue Box Group’s internal infrastructure in top-shape and provides tier 3 ...

Read More →