News and Notes

NUKEMAP and the Ukraine–Russia war (so far)

by Alex Wellerstein, published April 9th, 2022

In early February 2022, as readers will have seen, I celebrated the tenth anniversary of the NUKEMAP. Privately, I had been reflecting personally on how the usage stats had been lower since the end of the Trump presidency. My feelings about the NUKEMAP usage stats are always a bit conflicted, since usage patterns tend to be lower when people are less worried about nuclear detonations, and while I do think people should be in general more worried about nuclear detonations during non-crisis periods than they are (because the possibility is still there), I don’t desire crisis periods. I’ll admit I did think, ah, maybe as a tool, NUKEMAP’s glory days have come and gone? 

Front page and article selection from the National Enquirer, March 21, 2022 edition

NUKEMAP’s most dubious media usage so far? From the March 22, 2022 edition of the National Enquirer. Yeah, they got my affiliation wrong — it’s the National Enquirer, they aren’t doing a lot of fact-checking! Thanks to Bill Geerhart for drawing this to my attention; I did manage to get my own copy as well, though these are his photos. (And before you make a Bat Boy joke, that’s Weekly World News. Totally different!)

But then Russia invaded Ukraine, and any part of me that got some kind of validation from NUKEMAP usage was quickly transmuted into a very different state of things: people are using the NUKEMAP too much. So much that my server became overwhelmed to the point that I was getting lots of feedback about it, and there were even articles written about it, and it was just taking a huge amount of my time trying to figure out the best ways to allow it to handle the amounts of traffic it was getting.

It’s impossible for me to know, for those first couple of weeks, exactly what the “demand” for NUKEMAP was, since the stats I have can only indicate how many people were served the page successfully and not the number who got a timeout screen. My rough guess, based on what happened once I improved the server capacity, was that about 50% of the people who wanted to use the NUKEMAP were unable to in this time, especially those who were not located in the United States where the server is located (one might think such things don’t matter in our cloud-based world, but they do for things like connection latency, which factors into how long your browser will wait before telling you it failed to connect). 

I scrambled quite a bit to figure out the best way to overhaul the server while it was simultaneously under strain, and talked with many very helpful volunteers who were experts at various aspects of it, but in the end I suspect that 90% of the problem was solved by just changing a single server setting. (I did some other changes that will speed it up in general, which is why there is now a little “loading” icon when you first connect — it used to do some things before acknowledging that it was connecting, and that was causing it to take a few extra seconds at times, which could hit that timeout.)1

The daily traffic of the NUKEMAP website from January 1, 2022 through the first week of April, 2022

The NUKEMAP daily traffic, from Google Analytics. I have annotated the various periods of usage with average (thousands per day) users. These are all visitors, not necessarily unique visitors (the numbers are not that different). The period in which it was “broken” is when it was unable to meet the demand, and so the actual demand was likely much higher than what was served. Of the 7 million in this time period, almost 6 million are from February 24th onward.

You can see, from the graph above, the remarkable increase that happened once I made these changes — the number of users pretty much doubled. What is really unusual about the above is not just that the number of users is very high, but that it doesn’t look like the standard spike-and-long-tail that is usually the hallmark of a moment of virality, but it is more like a plateau (inadequate server resources) that turns into a mountain. The traffic has gone down quite a bit over the last few weeks, but the “baseline” today is still twice what it was in January and early February.

In terms of actual usage, I haven’t tried to analyze the details — it takes a lot of work to do that, and as I’ve noted, I don’t have a lot of time at the moment — but unsurprisingly it looks like a lot of the users have been in Europe, more so than usual. Per usual, the majority of users are in Anglophone countries (because NUKEMAP is in English, something I still intend to remedy in the future), and especially the USA, but there are interested trends in some of the geographical data:  the countries that host NATO nuclear weapons (Belgium, Germany, Italy the Netherlands) definitely seem to have an inflated usage patterns, as does Poland, Ukraine, and Russia. Not surprising, but interesting to see.

Map of NUKEMAP usage patterns for Europe from February through April 2022

NUKEMAP usage for European nations for February 24, 2022 through early April 2022, with select individual counts shown (in thousands). Data and map from Google Analytics.

I am glad that this got fixed, but this took quite a lot of time to figure out (I am not a server admin!), and it added quite a lot to my already-substantial workload by itself. The increased attention, and nuclear anxiety, also lead to increased numbers of media requests, which I try to honor (but don’t always have time to — believe it or not, NUKEMAP is only one small portion of my workload and responsibilities). So, for example, I have several blog posts that I meant to post in that period that haven’t come to fruition yet, both because it felt somehow inappropriate in the early period of the war to post something about nuclear weapons that had nothing to do with the present work (I have one about an interesting World War II topic that I have pretty much written, but have been holding back until it felt right), and also because the time it takes to write a blog post, even a rather breezy one, is always in competition with the other things I am supposed to be doing (teaching, grading, reviewing, writing, directing, advising, living).

So this post is just a very quick update on things, since the last thing I posted was about the temporary mirror (which is still up, for now, but will soon just be redirected to the main server). There are a few things that were on the nuclearsecrecy.com domain that are no longer functional because of how I had to reconfigure the server, notably NUKEMAP Classic, which was the original 2012 version of NUKEMAP that had much more reduced functionality but would let you put in arbitrarily (and ridiculously) high yields. There are changes to that code that would need to be made to make it run on the new setup, and I’ll admit that I haven’t really felt that it was such a pressing need, since I have essentially no confidence in those arbitrarily-large yield calculations (once you scale up to, say, the tens of billions of tons of TNT, you are talking about fireballs that are themselves larger than the atmosphere, and so there are a lot of things that are just not going to similarly scale up the same way — like the formation of the blast wave). There are times when people would still like to put in ridiculous yields just to get a very hand-wavy look at them, and maybe they could be accommodated in the existing NUKEMAP code (I would make it put a “warning: the model doesn’t work above 100 Mt, and may not even be accurate at 100 Mt” pop-up if you did so), which would be easier than fixing NUKEMAP Classic (which now also just looks very ugly to my eyes). If you have strong thoughts on the matter, feel free to let me know. 

I did, however, make some time to clean up my office for the first time since the pandemic began, and to put up some new decorations — Soviet Civil Defense posters, printed in Kyiv in 1986 — on the wall. A television crew came to talk to me about NUKEMAP, but they ended up not filming in here. But I was happy to have a more functional office anyway, and plainly not above showing it off.

Anyway, as always, more soon. I have tried to hold back in offering too many concrete thoughts on the Ukraine–Russia situation, except to point out (in a Twitter thread that got retweeted enough times to make me feel uncomfortable and want to keep my mouth shut) that I do not think the probability of nuclear use is that high at the moment — higher than normal, but lower than during the 2017-18 North Korean crisis — but otherwise I have tried not to predict the future (I do not think historians are particularly gifted at such endeavors; as one senior scholar put it to me when I was just an undergraduate, we struggle as it is to understand the past). But I do have some thoughts on “what it all means” beyond just being horrified and appalled (by both the Russian behavior and the behavior of those various groups among us who would justify and enable them) that I am trying to write up as an essay that hopefully will come into existence fairly soon.

  1. I did two things that seem to have dramatically improved the performance: I made it so that everything client-side was served from Amazon S3 buckets, which are much faster and easier to handle than using a real server. Everything that is server-side — which are several different parts of how NUKEMAP works, including an initial database query to try and figure out what the biggest city near the user is, based on their IP — is on a separate AWS server running Apache, and I made all of that fully asynchronous, which it was not before, because I am someone who learned most of his programming patterns in the late 1990s/early 2000s. This helped a bit by itself, but the Apache server was still the bottleneck until I increased the number of “workers” that Apache was allocating for connections. By default, the Apache settings are pretty low — they don’t want to let Apache dominate a server’s CPU and RAM — and raising those by a factor of 100 or so really opened up the flood-gates and allowed it to do a lot more than it had been doing before. Once I did that, the results were almost immediately better, as the server was sufficiently strong to handle a lot more traffic than it had been set up to handle. []

One Response to “NUKEMAP and the Ukraine–Russia war (so far)”

  1. Thanks for the footnote, Alex. It saved me from asking which settings you changed.