Author Archives: galgalesh

What does “perf interrupt took to long” mean?

Wifi problems…

So, I’m having a problem with my laptop. When I’m using the “TelenetWiFree” connection, I get disconnected after a certain amount of time, and for some reason I cannot reconnect until I restart my computer. Toggling the hardware Wifi kill-switch, which lets you disable and enable the power to the wifi hardware, does not resolve the problem. After re-enabling the hardware, the wifi doesn’t seem to come back again. Only a reboot makes the Wifi work again…

The “TelenetWiFree” Wifi doesn’t play well with all the computers we have, three Ubuntu laptops and one Chromebook, but it seems particularly wonky with my computer.  I had some free time, so I started digging into the problem.

Who watches the watchmen? It seems the kernel does…

In the dmesg output, I found the following line:

perf interrupt took too long (2528 > 2500), lowering kernel.perf_event_max_sample_rate to 50000

This doesn’t seem right, maybe this is the source of the problem! Let’s do some digging:

  • Perf is a Linux Kernel performance monitor.
  • Perf uses Non-Maskable Interrupts. This basically means Perf can tell the cpu “Pauze whatever you’re doing now and let me do something”. This allows perf to have a “watchdog” functionality where it can monitor even the most critical processes and interrupts.

With great power comes great responsibility. Perf can hang your computer by constantly pauzing everything. To make sure this won’t happen, the kernel itself monitors perf.  When it decides perf is pauzing too long, it tells perf to do a little bit less. That’s basically what that dmesg line means. The kernel told perf to do a little bit less. Does it have anything to do with the Wifi problem? Probably not… But at least I learned something: The kernel watches the watchmen…

Additional sources:

cat /meetup/pragmatic_docker_day_2015

I got a ticket to the Pragmatic Docker Day meetup in Ghent in exchange for writing a blogpost about it. Free food, drinks & awesome talks for a whole day, who would want to miss that? Not me!

So here are my unstructured thoughts I gathered from the meetup:

Docker is awesome!

What is docker? Docker encapsulates apps in their own little sandbox. Every app runs in its own container. An environment made especially so the app can run well and can’t mess to much with other apps running on the same server. It’s basically a VM without the overhead.

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications

Developers write their apps and put them in a docker container. They give this container to sysadmins and they are sure everything will work once deployed on the server because the app and all its dependencies are bundled in the docker container.

Docker is fancy!

This isn’t new at all. Containers have existed on Linux for a very long time. What docker does is provide a very fancy interface and API to work with and distribute those containers. This opens container technologies to a much broader public.

Docker is becoming so popular that even Microsoft wants in on the party. Docker announced a partnership with Microsoft to bring Docker to Windows.

Docker is production-ready*

Tomas Doran talked about how Yelp is using Docker in their Continues Integration & Continues Deployment workflow. From what I gathered, almost every service at Yelp is running in docker containers. This allows for very dynamic scaling, and makes the development – testing – production chain a lot shorter without compromising on the stability.

*Docker is still a very young and fast-moving platform. Using this in production requires a lot of knowledge and requires some caution. For a small infrastructure the benefits you get from docker might not outweigh the disadvantages from working with such early technology. However, even when you don’t use Docker in production, you can still benefit from it during development and testing!

Docker containers are not cross-platform…

The docker container still uses the host’s kernel. This means that a docker container will only work on a machine that supports the same kernel functionality. If you make a docker container on Linux, and you run it on a distro with a different version of the Linux kernel, most of the time you’ll be allright. However, running Linux docker containers native on a Mac or Windows won’t work.

You can still run containers on Windows?!

It’s still possible to run Linux docker containers on Mac and Windows using boot2docker. This is basically a lightweight Linux VM. Docker containers run in this VM. This is great for development, but there might be an overhead because of the virtualization.

Pragmatic Docker Day

Tuesday, Apr 21, 2015, 8:30 AM

Zebrastraat 32 9000 Gent, BE

1 Dockers Went

Important: RSVP/Subscriptions via eventbrite: main focus ‘pragmatic’ docker:Docker is awesome but doesn’t come with batteries included ; once you go beyond the simple docker you’ll be searching the web for insights and having to decide between the old/new/hottest approach to do things.I’ve noticed many docker …

Check out this Meetup →