? Curious Hacker Newsfront | about | view on HN unofficial mirror
Mystery of 60-Second Fluctuations in Power Grids Solved (fz-juelich.de)
247 points by _Microft 2026-10-31 | 89 comments | side by side | 10 rewritten | show 16 removed | updated 18:58 UTC
 help



Funny, similar patterns are super common in API traffic. A large spike at midnight UTC, a smaller one every hour, even smaller ones every 15 minutes, and a little bump every minute if your metrics have enough resolution. Of course, if someone calls your API every minute you should probably consider some kind of streaming, or at least include make the request cheap by requiring a cursor of some kind.

Funny, similar patterns are super common in API traffic. A large spike at midnight UTC, a smaller one every hour, even smaller ones every 15 minutes, and a little bump every minute if your metrics have enough resolution. Of course, if someone calls your API every minute you should probably consider some kind of streaming, or at least include make the request cheap by requiring a cursor of some kind.

Gives a relevant parallel from first-hand experience with API traffic.

Package managers like apt will delay automatic updates for a random time to avoid this problem:

    RandomizedDelaySec=12hr

https://wiki.debian.org/PeriodicUpdates#Modify_the_schedule_via_systemd

Package managers like apt will delay automatic updates for a random time to avoid this problem:

    RandomizedDelaySec=12hr

https://wiki.debian.org/PeriodicUpdates#Modify_the_schedule_via_systemd

A concrete real-world example of randomized delay, with a documentation link.
cortesoft 2026-11-02 16:508/10first_handinformativeinsightful | parent | prev | next [–]

Yeah, adding 'jitter' for periodic tasks that make remote requests was standard procedure when I worked for a large CDN. Every cron entry on every server would run with a delay of between 0 and 59 seconds, based on a hash of the server name. You basically 60x your internal infrastructure capacity by doing this (depending on how long the request takes to serve, of course, as well as a few other factors)

That, exponential backoffs, and local cache for external resources needed to operate the CDN (such as configuration) were the foundation of running a large network reliably.

Yeah, adding 'jitter' for periodic tasks that make remote requests was standard procedure when I worked for a large CDN. Every cron entry on every server would run with a delay of between 0 and 59 seconds, based on a hash of the server name. You basically 60x your internal infrastructure capacity by doing this (depending on how long the request takes to serve, of course, as well as a few other factors)

That, exponential backoffs, and local cache for external resources needed to operate the CDN (such as configuration) were the foundation of running a large network reliably.

First-hand account of how a large CDN used hash-based cron jitter, exponential backoff and local caching to stay reliable.

I've just convinced my team to be nice and add a random delay for all those periodic checks in our software last week :)

Yes of course, there was the check at 2 am local time before ...

I've just convinced my team to be nice and add a random delay for all those periodic checks in our software last week :)

Yes of course, there was the check at 2 am local time before ...

A short first-hand account of adding random jitter to periodic checks, which fits the thread.

Just adding random shift of the duration of the check already will get you uniform distribution

Just adding random shift of the duration of the check already will get you uniform distribution

A short technical point about desynchronizing periodic jobs, made in good faith.

> and a little bump every minute if your metrics have enough resolution

Amusingly, you can also observe periodic bumps if your metrics don’t have enough resolution, due to aliasing effects dominating signal (guestures vaguely at Nyquist frequency).

> and a little bump every minute if your metrics have enough resolution

Amusingly, you can also observe periodic bumps if your metrics don’t have enough resolution, due to aliasing effects dominating signal (guestures vaguely at Nyquist frequency).

Good point that aliasing can create fake periodic bumps.

By definition, if you can see effects then the metrics have enough resolution.

The specific resolution is the Nyquist frequency - that part is accurate.

By definition, if you can see effects then the metrics have enough resolution.

The specific resolution is the Nyquist frequency - that part is accurate.

A substantive technical disagreement about resolution and aliasing.
formerly_proven 2026-11-02 14:387/10informativeinsightful | root | parent [–]

Sampling metrics is sampling and leads to aliasing.

Similarly, sample count/interval limits in tsdbs like prometheus are not downsampling. They're just skipping samples. This also creates aliasing. Can be very noticeable especially if you combine it with rate/derivative functions.

Sampling metrics is sampling and leads to aliasing.

Similarly, sample count/interval limits in tsdbs like prometheus are not downsampling. They're just skipping samples. This also creates aliasing. Can be very noticeable especially if you combine it with rate/derivative functions.

Clearly explains how sampling and sample-skipping in TSDBs like Prometheus cause aliasing.

Even more important if your devices are dialing into a modem bank. We spent a lot of time designing retry schedules and such when I worked on these (ironically for energy storage/demand management devices)

Even more important if your devices are dialing into a modem bank. We spent a lot of time designing retry schedules and such when I worked on these (ironically for energy storage/demand management devices)

A short first-hand note on designing retry schedules for devices that dial into modem banks, which fits the energy topic.

Same here. We see this kind of spikes in our tunnel traffic also - every hour and specially at midnight UTC. Cron jobs everywhere :)

Same here. We see this kind of spikes in our tunnel traffic also - every hour and specially at midnight UTC. Cron jobs everywhere :)

Brief corroborating experience.

Links to the primary source paper.
fable_narwhal90 2026-11-02 06:37 | rewritten5/10snarkquestion | original | prev | next [–]

The press release is light on details. Beyond the 60-second interval and the link to generators (or similar), what exactly is the source, down to make and model? It seems they didn't identify the specific manufacturer or devices, so firmware changes weren't possible?

original comment by schobi

The press release is rather light on details. They found that it is every 60seconds (duh!) and generators (or such). So what exactly is it? (Make and model?)

Seems like they did not find the exact manufacturer or the exact devices and were not able to change firmware then?

Removed the 'duh' and kept the genuine question about which devices are responsible.

The paper has a little more details:

  "following our communication with the manufacturer, a software update was issued that removed the strict periodicity of the current peaks in one battery block of the investigated UPS system"

https://www.nature.com/articles/s41560-026-02144-0

Given the issue is so widespread (international, affecting pretty much every grid), it's likely that multiple manufacturers use similar approaches.

The paper has a little more details:

  "following our communication with the manufacturer, a software update was issued that removed the strict periodicity of the current peaks in one battery block of the investigated UPS system"

https://www.nature.com/articles/s41560-026-02144-0

Given the issue is so widespread (international, affecting pretty much every grid), it's likely that multiple manufacturers use similar approaches.

Quotes the paper showing the manufacturer issued a fix, and links the source.

You see the same thing with e.g. cron jobs, where everyone schedules on xx:00 or xx:30. No communication needed, it's just natural. More senior people recognize this and add randomness to their start times or skew a bit.

You see the same thing with e.g. cron jobs, where everyone schedules on xx:00 or xx:30. No communication needed, it's just natural. More senior people recognize this and add randomness to their start times or skew a bit.

Draws a useful parallel to the way cron schedules naturally cluster.

It's often failing of the tools used, cron (and various other OS equivalents) just doesn't have good facilities to it.

Systemd timers have some, for example RandomizedOffsetSec=30m on 30m job will spread it nicely.

I'd also like if schedulers just had option "just fit it in with other jobs and fire it with this rough interval when there is least amount of other jobs running"

It's often failing of the tools used, cron (and various other OS equivalents) just doesn't have good facilities to it.

Systemd timers have some, for example RandomizedOffsetSec=30m on 30m job will spread it nicely.

I'd also like if schedulers just had option "just fit it in with other jobs and fire it with this rough interval when there is least amount of other jobs running"

A substantive point about scheduler tooling, with a concrete systemd example.

I always recommend to use weird numbers for different tasks. That way, you can see "oh my system is under severe load at *:13 (or 17, 23, 42, ...). That must be this cron job"

I always recommend to use weird numbers for different tasks. That way, you can see "oh my system is under severe load at *:13 (or 17, 23, 42, ...). That must be this cron job"

Practical advice: unusual minute values make it easy to trace which job is causing load.
catlifeonmars 2026-11-02 14:066/10informativeinsightful | root | parent [–]

I do a similar thing with ping payload sizes to be able to fingerprint the traffic: I’ll use prime numbered packet sizes so that they can be detected even when the packet sizes are summed.

Btw, one of those numbers is not like the others (has more prime factors that evenly divide 60).

I do a similar thing with ping payload sizes to be able to fingerprint the traffic: I’ll use prime numbered packet sizes so that they can be detected even when the packet sizes are summed.

Btw, one of those numbers is not like the others (has more prime factors that evenly divide 60).

Shares a practical trick with prime-sized packets and points out that 42 isn't prime.

Good point. 7,11,13... do not repeat every hour.

Good point. 7,11,13... do not repeat every hour.

Short agreement that adds the relevant point that 7, 11 and 13 don't divide evenly into an hour.

You ought to use RandomizedDelaySec=xxx

You ought to use RandomizedDelaySec=xxx

A short but useful pointer to a specific systemd setting.

Depends. If you want a breadcrumb trail, use primes. If you want no noticeable effect at all, or cannot imagine a traffic bump that you'll want to decipher, use random offsets.

Depends. If you want a breadcrumb trail, use primes. If you want no noticeable effect at all, or cannot imagine a traffic bump that you'll want to decipher, use random offsets.

Weighs prime offsets against random ones in a practical way.

It’s entirely possible the battery controllers are running linux too

It’s entirely possible the battery controllers are running linux too

A brief but relevant link between cron habits and the battery controllers.
qrios 2026-11-02 02:47 | removed0/10low_effortmeta | prev | next [–]


It had both ended up in the second chance pool.

It had both ended up in the second chance pool.

Meta comment about HN's second-chance pool with no topical content.
Arn_Thor 2026-11-02 11:49 | removed0/10joke | prev | next [–]

Excellent sleuthing. Witthaut these fellas we'd still be in the dark

Excellent sleuthing. Witthaut these fellas we'd still be in the dark

A pun with no substance.

i'm confused, why would a system simply checking its own power state be taking so much electricity as to show up on grid measurements? unless they mean that the systems are choosing to start charging the batteries, but then it's a continuous load and not a spike at the start of the minute, right?

i'm confused, why would a system simply checking its own power state be taking so much electricity as to show up on grid measurements? unless they mean that the systems are choosing to start charging the batteries, but then it's a continuous load and not a spike at the start of the minute, right?

Asks a sincere question about how the load spikes actually come about.

The Frequency is actually increasing at every event which means grid load is reduced for a short while every minute. Those UPS installations basically briefly switch to Battery every Minute to test Capacity/internal resistance and so on. This so called "load dump" is visible in grid frequency since a lot of these systems work synchronous thanks to NTP

The Frequency is actually increasing at every event which means grid load is reduced for a short while every minute. Those UPS installations basically briefly switch to Battery every Minute to test Capacity/internal resistance and so on. This so called "load dump" is visible in grid frequency since a lot of these systems work synchronous thanks to NTP

Explains the frequency rise as UPS load dumps synchronized by NTP.

It can be that part of battery is disconnected, to estimate cells voltage. You can not measure voltage while another source is chsrging battery. Or capacitors are charging.

It can be that part of battery is disconnected, to estimate cells voltage. You can not measure voltage while another source is chsrging battery. Or capacitors are charging.

Offers a plausible technical mechanism for the current spikes during state-of-charge checks.

I think you can. RC toys do that all the time. Maybe the measurement is less precise, but you usually don't need super precise voltage, especially if you know your capacitance and measure current.

I think you can. RC toys do that all the time. Maybe the measurement is less precise, but you usually don't need super precise voltage, especially if you know your capacitance and measure current.

Reasoned disagreement about measuring voltage while charging.

Current doesn't tell you if the battery is leaking charge, or otherwise failing to store it though. Vastly increased losses could be a sign of failure, for example. In any case it's important to be sure.

Current doesn't tell you if the battery is leaking charge, or otherwise failing to store it though. Vastly increased losses could be a sign of failure, for example. In any case it's important to be sure.

Explains why measuring current alone can miss signs that a battery is failing.

temperature is also a problem

temperature is also a problem

Brief, but it names one more real factor in battery monitoring.

Temperature probes shouldn't require disconnecting cells, though.

Temperature probes shouldn't require disconnecting cells, though.

Makes a short, relevant technical distinction about temperature monitoring.

no the temperature changes the voltage reading

no the temperature changes the voltage reading

A short but real technical point: temperature affects the voltage reading, which is why cells may need to be disconnected.

That wouldn't require dropping from power network, just disconnecting battery from load/charging

That wouldn't require dropping from power network, just disconnecting battery from load/charging

A short technical rebuttal in good faith: measuring cell voltage only needs the battery isolated, not the whole device dropped from the grid.

If they are checking the charging at exactly the minute, then start of charge will happen then too, which will create a spike if it's synchronized with many others doing the same thing.

If they are checking the charging at exactly the minute, then start of charge will happen then too, which will create a spike if it's synchronized with many others doing the same thing.

Clearly answers the parent's confusion about why the load spikes.

[deleted]

> It really was years of detective work

Doesn't seem that complicated from the article though. They say that they immediately knew it was clock based due to the strict interval. With REA etc. it might become easier to proof, but I guess it's a measurement problem that only appears in large networks?

Can someone with more understanding explain why this was apparently so difficult to find out?

> It really was years of detective work

Doesn't seem that complicated from the article though. They say that they immediately knew it was clock based due to the strict interval. With REA etc. it might become easier to proof, but I guess it's a measurement problem that only appears in large networks?

Can someone with more understanding explain why this was apparently so difficult to find out?

Asks a real question about why the source was so hard to identify.
myself248 2026-11-02 12:338/10insightfulinformative | parent | next [–]

When you monitor a power line, you don't get a tcpdump showing who's producing and who's consuming the power. You can't just jump straight to the culprit.

It's just bulk flows, so when a weird flow shows up, you've got to move up or down the line, past a few producers or consumers, and see if the flow changes. For a subtle effect, that might not even be so clear.

Worse, for an effect that's most visible at the medium-voltage transmission level, simply placing a monitor might take weeks. These are planned installations with incredible safety considerations -- you don't just plug in.

Finally they found a research campus with a bunch of battery storage systems, AND the ability to install a bunch of monitors, and persuaded them to install dozens of monitoring points. Finally a high-resolution view of the effect allowed them to confirm the behavior.

When you monitor a power line, you don't get a tcpdump showing who's producing and who's consuming the power. You can't just jump straight to the culprit.

It's just bulk flows, so when a weird flow shows up, you've got to move up or down the line, past a few producers or consumers, and see if the flow changes. For a subtle effect, that might not even be so clear.

Worse, for an effect that's most visible at the medium-voltage transmission level, simply placing a monitor might take weeks. These are planned installations with incredible safety considerations -- you don't just plug in.

Finally they found a research campus with a bunch of battery storage systems, AND the ability to install a bunch of monitors, and persuaded them to install dozens of monitoring points. Finally a high-resolution view of the effect allowed them to confirm the behavior.

Clearly explains why tracing grid flows to their source is slow and hard.

The effect is apparently small enough that they had to use Fourier analysis over many minutes to see it in the noise.

The effect is apparently small enough that they had to use Fourier analysis over many minutes to see it in the noise.

Concise explanation of why detection was hard: the signal was buried in noise.

Using Fourier analysis by itself doesn't say much about the effect's size; it's the standard way to convert a time-domain signal to the frequency domain, among other uses.

original comment by sidewndr46

That's not really telling us anything. The way you convert a time domain signal to a frequency domain signal, that is fourier analysis. There are other uses for it too, but that is the primary use.

Removed the dismissive framing and kept the technical point.
danadam 2026-11-02 13:528/10informativeinsightful | root | parent [–]

By increasing the length of the FFT you lower the apparent noise floor in the FFT magnitude plot and are able to detect smaller signals. That's called "FFT processing gain". The formula is:

FFT gain = 10*log(M/2)

where M is the number of points processed in the FFT. Doubling the number of points, lowers the apparent noise floor by 3 dB.

(I don't know if that's what the researchers actually did. I'm just explaining what the comment presumably meant.)

By increasing the length of the FFT you lower the apparent noise floor in the FFT magnitude plot and are able to detect smaller signals. That's called "FFT processing gain". The formula is:

FFT gain = 10*log(M/2)

where M is the number of points processed in the FFT. Doubling the number of points, lowers the apparent noise floor by 3 dB.

(I don't know if that's what the researchers actually did. I'm just explaining what the comment presumably meant.)

Clearly explains FFT processing gain with the formula, and is honest about the limits of what it knows.

That's what they did. See [1], Fig. 3. (Which, amazingly for Nature, has a free download of the PDF.) This isn't something that shows up in a plain load vs time graph.

[1] https://www.nature.com/articles/s41560-026-02144-0

That's what they did. See [1], Fig. 3. (Which, amazingly for Nature, has a free download of the PDF.) This isn't something that shows up in a plain load vs time graph.

[1] https://www.nature.com/articles/s41560-026-02144-0

Confirms the method by pointing to the specific figure in the source paper and links to it.

There are many millions of devices connected that draw power, and increasingly so, supply power.

There are many millions of devices connected that draw power, and increasingly so, supply power.

Brief but real point about why the source is hard to find among millions of devices.

> Can someone with more understanding explain why this was apparently so difficult to find out?

Because the grid as a whole is dumb as fuck. Sure, you got measurement stations doing very fine frequency analysis, to the point you can use grid hum to timestamp audio recordings [1].

But you rarely have realtime insight at individual busbar level for each substation or heaven forbid consumers. Best chance you get is 15-minute consumption pings and voltage/frequency metering at large plants.

That means if you want to track down bad actors like the batteries here or the Kosovo/Serbia bullshit [2] that dragged down the frequency on the entire ENTSO-E grid (which is quite the challenge!), it takes months if not years.

[1] https://en.wikipedia.org/wiki/Electrical_network_frequency_analysis

[2] https://www.entsoe.eu/news/2018/04/03/frequency-deviations-continental-european-tsos-have-restored-the-situation-to-normal/

> Can someone with more understanding explain why this was apparently so difficult to find out?

Because the grid as a whole is dumb as fuck. Sure, you got measurement stations doing very fine frequency analysis, to the point you can use grid hum to timestamp audio recordings [1].

But you rarely have realtime insight at individual busbar level for each substation or heaven forbid consumers. Best chance you get is 15-minute consumption pings and voltage/frequency metering at large plants.

That means if you want to track down bad actors like the batteries here or the Kosovo/Serbia bullshit [2] that dragged down the frequency on the entire ENTSO-E grid (which is quite the challenge!), it takes months if not years.

[1] https://en.wikipedia.org/wiki/Electrical_network_frequency_analysis

[2] https://www.entsoe.eu/news/2018/04/03/frequency-deviations-continental-european-tsos-have-restored-the-situation-to-normal/

Blunt but informative about limited grid observability, with sources.

"But you rarely have realtime insight at individual busbar level for each substation"

This is kind of understandable, the amount of data would be huge. When faults happen though, recordings are automatically made available.

Some of these measurements can have surprisingly high frequency sampling, even though the grid itself feels "slow".

"But you rarely have realtime insight at individual busbar level for each substation"

This is kind of understandable, the amount of data would be huge. When faults happen though, recordings are automatically made available.

Some of these measurements can have surprisingly high frequency sampling, even though the grid itself feels "slow".

Practical context on data volumes and fault recordings in grid monitoring.
mschuster91 2026-11-02 15:397/10first_handinformative | root | parent [–]

> When faults happen though, recordings are automatically made available.

Depends on the fault. Without dedicated measurement in place it's still a lot of (literal) legwork to install current and voltage loggers.

> Some of these measurements can have surprisingly high frequency sampling, even though the grid itself feels "slow".

Sure. But especially in a world dominated by more and more solar and wind, where something like a cloud passing by can easily shed hundreds of kilowatts in a matter of seconds, the grid needs much, much more data across the board and everywhere - and much, much more battery storage, both centralized at substations and decentralized in people's basements.

> When faults happen though, recordings are automatically made available.

Depends on the fault. Without dedicated measurement in place it's still a lot of (literal) legwork to install current and voltage loggers.

> Some of these measurements can have surprisingly high frequency sampling, even though the grid itself feels "slow".

Sure. But especially in a world dominated by more and more solar and wind, where something like a cloud passing by can easily shed hundreds of kilowatts in a matter of seconds, the grid needs much, much more data across the board and everywhere - and much, much more battery storage, both centralized at substations and decentralized in people's basements.

Practical detail on grid measurement limits and what solar variability means for data and storage.

>> explain why this was apparently so difficult to find out?

Likely because the source of the noise was a class of energy providers that themselves react to fluctuation in the grid. Electricity may travel at the speed of light but all the little switches and transistors that connect/disconnect suppliers do not. It would have been noise within noise.

>> explain why this was apparently so difficult to find out?

Likely because the source of the noise was a class of energy providers that themselves react to fluctuation in the grid. Electricity may travel at the speed of light but all the little switches and transistors that connect/disconnect suppliers do not. It would have been noise within noise.

Plausible explanation for why the signal was hard to isolate.
Y_Y 2026-11-02 12:115/10informative | root | parent [–]

Not quite the speed of light (in a vacuum) if your watching signals propagate along a conductor:

https://en.wikipedia.org/wiki/Velocity_factor#Typical_velocity_factors

Not quite the speed of light (in a vacuum) if your watching signals propagate along a conductor:

https://en.wikipedia.org/wiki/Velocity_factor#Typical_velocity_factors

A correct technical refinement about how fast signals travel in conductors, with a source.

Well ya, nothing on earth moves that fast, but the speed of power/signal in a grid is a speed described using direct reference to c, as opposed to the frequency of AC current which is measurable in frequencies we can actually appreciate with our own ears/eyes. They are in different leagues.

Well ya, nothing on earth moves that fast, but the speed of power/signal in a grid is a speed described using direct reference to c, as opposed to the frequency of AC current which is measurable in frequencies we can actually appreciate with our own ears/eyes. They are in different leagues.

Clarifies the difference between how fast signals travel and how often AC cycles.
iofiiiiiiiii 2026-11-02 06:30 | removed0/10curmudgeonlysnark | parent | prev [–]

If it were not a substantial research effort spanning years, it would not get funded. This motivates academic researchers to ensure that every topic is explored thoroughly and at great length.

If it were not a substantial research effort spanning years, it would not get funded. This motivates academic researchers to ensure that every topic is explored thoroughly and at great length.

Cynical dismissal of the research's funding motives that teaches nothing.

The water-hammer effect, or in this case electron-hammer effect, is why you don't reboot every Windows server in the data center at exactly 2am, to stagger the load shift over time. Surprised that the power guys didn't realize that switching a presumably multi-hundred-MW load in and out at the top of each minute would cause a problem.

The water-hammer effect, or in this case electron-hammer effect, is why you don't reboot every Windows server in the data center at exactly 2am, to stagger the load shift over time. Surprised that the power guys didn't realize that switching a presumably multi-hundred-MW load in and out at the top of each minute would cause a problem.

Draws a useful comparison to staggering synchronized load, though the surprise is a bit dismissive.

Sounds like they've been set up as cron tasks. I've always been unhappy with the 1 minute granularity of cron tasks. Only thing I could come up with was putting a sleep(random()) type of line to avoid a thundering herd type of issue.

Sounds like they've been set up as cron tasks. I've always been unhappy with the 1 minute granularity of cron tasks. Only thing I could come up with was putting a sleep(random()) type of line to avoid a thundering herd type of issue.

Relevant practical analogy to cron scheduling and adding random sleep to avoid thundering herds.
nlehuen 2026-11-02 05:338/10insightfulinformative | root | parent | next [–]

The Google internal equivalent to cron has a ? placeholder in the scheduling spec syntax letting the scheduler deterministically pick an arbitrary valid value within the field range. So ? 2 ... will pick any minute between 02:00 and 02:59 (and I suspect any second within that minute). The value is derived from a hash of the job definition, so overall this spreads the cron load within the hour.

Obviously cron jobs are not all equal in terms of load and duration, and hours are not all equal in terms of usage, but that still helps prevent trivial spikes similar to the one mentioned in the article (disclaimer: I'm not aware of a recent counterfactual experiment proving this, but that seems a fair assumption).

The Google internal equivalent to cron has a ? placeholder in the scheduling spec syntax letting the scheduler deterministically pick an arbitrary valid value within the field range. So ? 2 ... will pick any minute between 02:00 and 02:59 (and I suspect any second within that minute). The value is derived from a hash of the job definition, so overall this spreads the cron load within the hour.

Obviously cron jobs are not all equal in terms of load and duration, and hours are not all equal in terms of usage, but that still helps prevent trivial spikes similar to the one mentioned in the article (disclaimer: I'm not aware of a recent counterfactual experiment proving this, but that seems a fair assumption).

Explains a deterministic hash-based scheduling approach used at scale.

I suppose one would end up with checks happening on a random second instead of a random minute - reducing the size of the spike by a factor of 60, but still spiky.

I suppose one would end up with checks happening on a random second instead of a random minute - reducing the size of the spike by a factor of 60, but still spiky.

A small but real point: hashing the start time spreads the spike out without removing it.

That still lands it at the top of the minute, which is AFAIK the pattern the researchers found.

That still lands it at the top of the minute, which is AFAIK the pattern the researchers found.

Ties the scheduling scheme back to the top-of-minute pattern the researchers found.

Yes it’s a real effect. I’ve just hardcoded offsets on various jobs:

  * * * * * sleep 17 && …

etc.

That way I still maintain a per-job 60-second cadence consistently (which random would not), but don’t do it right on the top of the minute.

Yes it’s a real effect. I’ve just hardcoded offsets on various jobs:

  * * * * * sleep 17 && …

etc.

That way I still maintain a per-job 60-second cadence consistently (which random would not), but don’t do it right on the top of the minute.

Practical technique for offsetting jobs while keeping a fixed cadence.
dylan604 2026-11-02 04:376/10questioninsightful | root | parent | next [–]

That's interesting as it is also visible with a crontab -l so that new scripts can avoid using the same second. However, if you have a farm of machines with the same hardcoded value, they will all still stampede at the same time just not at the top of the minute. By allowing a random value, their start times are slightly offset with in the minute. Is the precise 60s consistent interval really that critical or just that each machine checks once per minute-ish?

That's interesting as it is also visible with a crontab -l so that new scripts can avoid using the same second. However, if you have a farm of machines with the same hardcoded value, they will all still stampede at the same time just not at the top of the minute. By allowing a random value, their start times are slightly offset with in the minute. Is the precise 60s consistent interval really that critical or just that each machine checks once per minute-ish?

Makes a fair point that fixed offsets still stampede across a fleet, and asks a real question.
InsidiousWombat 2026-11-02 16:467/10informativefirst_hand | root | parent [–]

Our configuration management system(Puppet) has function for that, fqdn_rand

give it number and you will get random value up to that number, same every run for a given host, but different per host (basically, hashed host fqdn)

add a label and you will get different number but similarly consistent. Makes it real easy to randomize run across the fleet.

Would be easy script to make.

Also systemd timers have the randomization builtin, just need to specify time

    RandomizedDelaySec=12h

Our configuration management system(Puppet) has function for that, fqdn_rand

give it number and you will get random value up to that number, same every run for a given host, but different per host (basically, hashed host fqdn)

add a label and you will get different number but similarly consistent. Makes it real easy to randomize run across the fleet.

Would be easy script to make.

Also systemd timers have the randomization builtin, just need to specify time

    RandomizedDelaySec=12h
Gives concrete, practical ways to spread scheduled jobs across a fleet: Puppet's fqdn_rand and systemd's RandomizedDelaySec.

Systemd timers do this natively btw, no need to hardcode And imho are also friendlier.

Systemd timers do this natively btw, no need to hardcode And imho are also friendlier.

Points to systemd timers, which already handle randomized offsets.
solar_seal87 2026-11-02 04:52 | rewritten2/10snarklow_efforttropekept_for_replies | original | root | parent | next [–]

A lot of people still dislike systemd on principle, though.

original comment by Cyph0n

But systemd bad :[

Rewritten as a plain remark about systemd's reputation so the substantive journalctl reply has context.

People slowly are getting used to it. (Less so with journalctl)

People slowly are getting used to it. (Less so with journalctl)

A brief but sincere observation about how systemd is being adopted; no hostility.

journalctl is good idea executed terribly. It's builtin data format is massively wasteful and not even good at searching for data you want (often need to go thru all the files anyway)

Journalctl with SQLite or a columnar embedded database would be amazing for sysadmins. Current format is entirely useless

journalctl is good idea executed terribly. It's builtin data format is massively wasteful and not even good at searching for data you want (often need to go thru all the files anyway)

Journalctl with SQLite or a columnar embedded database would be amazing for sysadmins. Current format is entirely useless

Blunt but substantive criticism of journald's storage format, with a concrete alternative; it's a tangent from the grid story.

BSD cron has supported jitter for decades. This is strictly a linux problem.

BSD cron has supported jitter for decades. This is strictly a linux problem.

Adds the relevant fact that BSD cron has long supported jitter.
azure_yak9 2026-11-02 11:54 | rewritten7/10cross_examinationinsightful | original | root | parent [–]

It's a human problem more than a Linux one. Nobody expects their own "minimal" checks to compound, and everyone (re)implements periodic checks in ever-more-inventive ways. Even if BSD cron supports jitter, that only helps what actually runs through cron. Prometheus scheduling its periodic polling, OTel collectors uploading backend metrics, and application heartbeats usually don't use cron at all. At least in my experience, that's not how things are done.

original comment by fch42

It's a human problem. Noone "expects" their own "minimal" checks to compound. And everyone (re)implements periodic checks in ever-more-inventive ways. BSD cron solves this ? Alright. Does prometheus use it to schedule its periodic polling ? Do OTel collectors use it to smear their backend metrics uploads ? Does your own code use cron jobs for its "periodic" heartbeating ?

If the answer to that is all-yes, then my compliments to you. Alas ... at least my experience says that's not how things are done.

Kept the good point that synchronized periodic work happens outside cron and turned the rhetorical interrogation into plain statements.

Yes, using prime numbers are a good way to reduce the risk of multiple timers coinciding, for example a 10s, 30s, 60s period on a freshly restarted node / process.

Yes, using prime numbers are a good way to reduce the risk of multiple timers coinciding, for example a 10s, 30s, 60s period on a freshly restarted node / process.

Useful tip: prime-number periods reduce the chance that timers line up.
cman1444 2026-11-02 13:386/10informativeinsightful | root | parent [–]

Reminds me of hunting tooth gearsets. Perhaps these systems should be checking battery every 59, or 61 seconds, as those numbers are coprime with 60.

https://shoppress.dormanproducts.com/hunting-tooth-gearsets/

Reminds me of hunting tooth gearsets. Perhaps these systems should be checking battery every 59, or 61 seconds, as those numbers are coprime with 60.

https://shoppress.dormanproducts.com/hunting-tooth-gearsets/

A useful comparison to hunting-tooth gears that suggests coprime check intervals.
cdot2 2026-11-02 15:066/10informativefirst_hand | root | parent | prev | next [–]

By default, systemd timers activate at a random interval within 60 seconds of when the timer is actually set in order to solve that potential issue. It's weird when you set a 60s timer and it activates twice within a few seconds.

By default, systemd timers activate at a random interval within 60 seconds of when the timer is actually set in order to solve that potential issue. It's weird when you set a 60s timer and it activates twice within a few seconds.

Describes how systemd timers randomize by default and the odd behavior that can cause.

Yeah, and it's not cron, it's "everything running on a digital schedule"

Analog systems naturally have a dispersion to them, digital ones, especially with everybody on NTP, much less so

Yeah, and it's not cron, it's "everything running on a digital schedule"

Analog systems naturally have a dispersion to them, digital ones, especially with everybody on NTP, much less so

Good point about analog spread versus digital synchronization.

It seems more like one or multiple suppliers of battery systems not taking into account that the decentralized deployments of their system could have that effect. If it's not regulated and an open market, this was bound to happen sooner or later.

It seems more like one or multiple suppliers of battery systems not taking into account that the decentralized deployments of their system could have that effect. If it's not regulated and an open market, this was bound to happen sooner or later.

Reasonable point that the issue came from uncoordinated decentralized deployments by vendors.

It's not a multi-hundred-MW load

It's thousands of few kW's of load

It's not a multi-hundred-MW load

It's thousands of few kW's of load

This is a short but real correction: the load comes from many small distributed sources switching together, not one big load.
0xbadcafebee 2026-11-02 05:017/10informativeinsightful | parent | prev | next [–]

In computer/systems/distributed engineering this is called request smoothing or traffic shaping, and it's implemented by adding jitter, which is a random time offset/pad added to the interval.

The funny thing is, modern electrical codes already account for this phenomenon. In order to implement Net Metering (selling your power to the grid), modern standards implement two kinds of jitter:

- Sandia Frequency Shift: a minute shift in the power frequency generated by inverters. If the grid is connected, this is effectively eliminated; if the inverter is disconnected from the grid, it detects the frequency has shifted and disconnects the inverter from the grid.

- Slip-Mode Frequency Shift: basically the same thing, but phase shift (which I don't understand).

Both of these are used for anti-islanding (don't create an island of power). When the inverter detects it's isolated and stops outputting current, it then has to check every 5 minutes, with jitter, for whether the grid is restored or not. It has to add random jitter, because otherwise all the mini battery/solar installs will come online at the same time and swamp the grid, causing another outage.

In computer/systems/distributed engineering this is called request smoothing or traffic shaping, and it's implemented by adding jitter, which is a random time offset/pad added to the interval.

The funny thing is, modern electrical codes already account for this phenomenon. In order to implement Net Metering (selling your power to the grid), modern standards implement two kinds of jitter:

- Sandia Frequency Shift: a minute shift in the power frequency generated by inverters. If the grid is connected, this is effectively eliminated; if the inverter is disconnected from the grid, it detects the frequency has shifted and disconnects the inverter from the grid.

- Slip-Mode Frequency Shift: basically the same thing, but phase shift (which I don't understand).

Both of these are used for anti-islanding (don't create an island of power). When the inverter detects it's isolated and stops outputting current, it then has to check every 5 minutes, with jitter, for whether the grid is restored or not. It has to add random jitter, because otherwise all the mini battery/solar installs will come online at the same time and swamp the grid, causing another outage.

Explains jitter and how grid-tie inverter standards already require randomized reconnection.

power guys got surprised as rest of the grid load is human randomised and even huge factories will come on one chonk at a time, vs miilisecond co ordinated load switching at scale, with batteries as the load of the initial surge into even fully charged batteries can be almost infinite, and the whole calculation around grid scale turbines is that they run at very precise rpm's for stability and longevity, but worse, and a big fail, as battery storage is supposed to help with that, not be the problem. bet it gets fixed realy fast as those grid guys definitly get listened to.

power guys got surprised as rest of the grid load is human randomised and even huge factories will come on one chonk at a time, vs miilisecond co ordinated load switching at scale, with batteries as the load of the initial surge into even fully charged batteries can be almost infinite, and the whole calculation around grid scale turbines is that they run at very precise rpm's for stability and longevity, but worse, and a big fail, as battery storage is supposed to help with that, not be the problem. bet it gets fixed realy fast as those grid guys definitly get listened to.

Explains why coordinated battery switching differs from naturally randomized grid load; informal but substantive.

> as the load of the initial surge into even fully charged batteries can be almost infinite

There was an post a couple of days ago about a telco debrief of an interesting outage that happened. Several things went wrong like the audible bell was manually silence from being heard as a step in routine working but was forgotten to put back into normal mode once work was complete. The actual loss in power triggered the automatic switch to the batteries, but something else seemingly benign happened at the same time so that when power was restored, the batteries had been depleted to the point the charging process could not start because of something similar to this. I wish I could remember the write up, as it was really well written about the cascades of failures that occurred.

> as the load of the initial surge into even fully charged batteries can be almost infinite

There was an post a couple of days ago about a telco debrief of an interesting outage that happened. Several things went wrong like the audible bell was manually silence from being heard as a step in routine working but was forgotten to put back into normal mode once work was complete. The actual loss in power triggered the automatic switch to the batteries, but something else seemingly benign happened at the same time so that when power was restored, the batteries had been depleted to the point the charging process could not start because of something similar to this. I wish I could remember the write up, as it was really well written about the cascades of failures that occurred.

Relevant anecdote about cascading battery and charging failures.

I believe this is what you're referring to.

https://news.ycombinator.com/item?id=50153229&hl=en-US

I believe this is what you're referring to.

https://news.ycombinator.com/item?id=50153229&hl=en-US

Gives a helpful link to the earlier discussion the parent was trying to remember.
dylan604 2026-11-02 04:34 | removed0/10jokelow_effort | root | parent [–]

Yes, thanks for allowing me to offload my RAM to yours!

Yes, thanks for allowing me to offload my RAM to yours!

A thank-you joke that adds nothing to the discussion.
froindt 2026-11-02 16:02 | removed0/10low_effortoff_topic | root | parent [–]

Gotta give Gemini the credit on this one! I didn't see the original, but it was interesting!

Gotta give Gemini the credit on this one! I didn't see the original, but it was interesting!

A conversational aside that adds nothing about the topic.

> grid scale turbines is that they run at very precise rpm's for stability and longevity

The turbines/generators set the grid frequency itself.

Having the batteries disconnect/connect would cause the generators to slow down and then speed up (or vice versa) which makes the rest of the grid frequency fluctuate as well.

It may also trigger the FCAS part of the grid that is paid to keep the frequency within the required range which is +/- 10mHz-200mHz.

https://mainsfrequency.com/frequ_info_en.php

> grid scale turbines is that they run at very precise rpm's for stability and longevity

The turbines/generators set the grid frequency itself.

Having the batteries disconnect/connect would cause the generators to slow down and then speed up (or vice versa) which makes the rest of the grid frequency fluctuate as well.

It may also trigger the FCAS part of the grid that is paid to keep the frequency within the required range which is +/- 10mHz-200mHz.

https://mainsfrequency.com/frequ_info_en.php

Explains how generators set grid frequency, with a reference.
stoic_rook8 2026-11-02 04:56 | rewritten2/10jokekept_for_replies | original | prev | next [–]

>unusually regular

I wonder if German has a single word for this.

original comment by SV_BubbleTime

>unusually regular

Oh I’m sure there is a German phrase for this.

Rewritten as a plain question because the replies have real substance about German word formation and the 1996 spelling reform.

I would go with “allzuregelmäßig”.

Similar to “allzuschön um wahr zu sein”, “allzugroß” etc.

I would go with “allzuregelmäßig”.

Similar to “allzuschön um wahr zu sein”, “allzugroß” etc.

A light tangent, but it explains the German construction behind the word.

However this is not a single word, but would be split as "allzu regelmäßig" cf. https://www.korrekturen.de/wortliste/allzuoft.shtml

However this is not a single word, but would be split as "allzu regelmäßig" cf. https://www.korrekturen.de/wortliste/allzuoft.shtml

Sourced correction on German spelling.

Oh interesting that got reformed, too! Strange choice to split it in two instead of three words (the latter which would have mimicked English: “all too”).

Well, then it seems we don’t have any single German word for all too regular anymore :(

Oh interesting that got reformed, too! Strange choice to split it in two instead of three words (the latter which would have mimicked English: “all too”).

Well, then it seems we don’t have any single German word for all too regular anymore :(

A sincere, mild language side-thread with a real fact about German spelling reform.

This never was one word actually.

This never was one word actually.

A short factual correction about German spelling.

Until the reforms in 1996, allzu… was one word: allzuoft, allzuschön, allzugroß, allzuviel, etc. But yeah, probably would have written such a long word in two words even then.

My new proposal would be überregelmäßig. Über+adjective is still one word only, post-reform. Sounds strange, but grammatically correct, and still conveys the “unusual” part.

Until the reforms in 1996, allzu… was one word: allzuoft, allzuschön, allzugroß, allzuviel, etc. But yeah, probably would have written such a long word in two words even then.

My new proposal would be überregelmäßig. Über+adjective is still one word only, post-reform. Sounds strange, but grammatically correct, and still conveys the “unusual” part.

Explains how German compound spelling changed in the 1996 reform; a tangent, but it teaches something.

Not a scholar of languages, but maybe something like "mit unheimlicher Regelmäßigkeit" (with un-home-ly regular-like-ness, read "home" like in "family" -> "familiar").

Not a scholar of languages, but maybe something like "mit unheimlicher Regelmäßigkeit" (with un-home-ly regular-like-ness, read "home" like in "family" -> "familiar").

A light tangent, but it explains the etymology of the phrase it offers.
quink 2026-11-02 05:48 | removed0/10joke | parent | prev | next [–]

Thinking about it tactically, I’ll go with taktisch. :) Takt-isch.

Thinking about it tactically, I’ll go with taktisch. :) Takt-isch.

Pun with no substantive content.
wolfi1 2026-11-02 10:05 | removed0/10joke | root | parent | next [–]

rather tak-tisch if we are talking hyphenation

rather tak-tisch if we are talking hyphenation

Hyphenation nitpick on a pun.
moi2388 2026-11-02 06:01 | removed0/10joke | root | parent | prev | next [–]

Surely you mean Tick-Tacktisch?

Surely you mean Tick-Tacktisch?

Pure wordplay.
speakspokespok 2026-11-02 09:00 | removed0/10low_effort | root | parent | prev [–]

verdächtig !

verdächtig !

A one-word quip with no explanation.
jgilias 2026-11-02 05:48 | removed0/10jokelow_effortthread_removed | parent | prev | next [–]

uhrwerksmäßig

uhrwerksmäßig

This is a side joke about German words, and the only reply responds to the joke, so the thread loses little if removed.

That doesn’t capture the “unusually” in “unusually regular”

That doesn’t capture the “unusually” in “unusually regular”

Reply in a thread removed with its parent.
aa-jv 2026-11-02 09:53 | removed0/10jokeoff_topic | root | parent [–]

Ungewöhnlichregelmäßig or Hyperregelmäßig works for me, but then there is Regelmäßigkeitsmonsterhaft.

Still, I think we can push the limits to Bürokratieapokalyptischhyperregelmäßigkeitsgötterungeheuerhaft and feel pretty comfortable with it.

Ungewöhnlichregelmäßig or Hyperregelmäßig works for me, but then there is Regelmäßigkeitsmonsterhaft.

Still, I think we can push the limits to Bürokratieapokalyptischhyperregelmäßigkeitsgötterungeheuerhaft and feel pretty comfortable with it.

A joke about long German compound words with nothing substantive.

[deleted]
yummybrainz 2026-11-01 04:32 | removed0/10low_effort | prev | next [–]

Thanks for sharing, very cool!

Thanks for sharing, very cool!

Generic praise with no substance.
keen_kiwi85 2026-11-02 06:09 | rewritten5/10snark | original | prev | next [–]

I'd have expected these devices to randomise their timing offsets to avoid a thundering-herd effect, as is standard practice when scheduling many processes.

original comment by snthpy

You'd think they'd randomise offsets to avoid a thundering herd effect, like anyone scheduling multiple processes does?

Removed the rhetorical framing and kept the point about thundering herds.

This is obvious to people who operate large fleets of devices, but much less so to people designing a single device, who may not think about what happens when thousands of them act in lockstep.

original comment by heisenbit

To anyone herding a herd this is obvious. To people crafting animals less so.

Rephrased an aphorism into its underlying point about device design versus fleet-scale effects.

A better solution might be to make the intervals coprime with 60. 59 or 61 seconds should work fine.

https://shoppress.dormanproducts.com/hunting-tooth-gearsets/

A better solution might be to make the intervals coprime with 60. 59 or 61 seconds should work fine.

https://shoppress.dormanproducts.com/hunting-tooth-gearsets/

Clever coprime-interval alternative with an analogy.
InsidiousWombat 2026-11-02 16:507/10informativeinsightful | root | parent [–]

no, you hash your node ID or get a random number, and then just add offset. That guarantees on average uniform load, not synchronized-wave-pattern-that-happens-to-be-59.

You have to consider that when power goes down and everything goes back up at same time you get same pattern back, just spike every 59 seconds instead of 60.

no, you hash your node ID or get a random number, and then just add offset. That guarantees on average uniform load, not synchronized-wave-pattern-that-happens-to-be-59.

You have to consider that when power goes down and everything goes back up at same time you get same pattern back, just spike every 59 seconds instead of 60.

Blunt but substantive disagreement: coprime intervals still synchronize after a mass restart, while hash or random offsets spread the load evenly.
Black616Angel 2026-11-02 06:12 | removed0/10snarklow_effort | parent | prev | next [–]

Apparently not everyone does ;)

Apparently not everyone does ;)

One-line quip that adds nothing.

[deleted]
fable_finch23 2026-11-02 14:31 | rewritten1/10low_effortcurmudgeonlykept_for_replies | original | prev | next [–]

I'm surprised this took years to solve.

original comment by neuroelectron

It's really surprising to me this took years to solve.

This is a short version of the author's surprise, kept so the replies about why it took so long still make sense.
sly_lynx28 2026-11-02 15:55 | rewritten3/10jokefirst_hand | original | parent | next [–]

Coordination overhead alone could explain a lot of it. From my experience with a state government coordination team, scheduling even a 20-minute discussion can take months once people are out, on leave, or travelling, and a multi-party grid investigation would have many more of those delays.

original comment by pizzafeelsright

Cha...ya know neuron, Dave is out and Jenny is on maternity leave - let's reschedule for 2 week okay?

No good. I am out that week. How about the 3rd week of November?

That's no good. Second week of December should work for all of us.

--near actual conversation with (State) government coordination team to have a 20 minute discussion.

Joke skit about scheduling, but it carries a first-hand point about how coordination slows investigations, so it was rewritten as a plain statement.
eager_wren78 2026-11-02 16:48 | rewritten3/10snarklow_effort | original | parent | prev [–]

60-second periodic patterns are very common in IT systems, so I'd have expected someone with a sysadmin background to recognize this kind of fluctuation fairly quickly.

original comment by InsidiousWombat

Shows they didn't had sysadmin to look at it, it's very common pattern on IT systems

Kept the point that 60-second cycles are a familiar pattern in IT and dropped the dismissive jab at the researchers.

> turbines slow down momentarily before accelerating back to their original rotational speed. This increases wear and tear.

Why though? Due to increased torque?

> turbines slow down momentarily before accelerating back to their original rotational speed. This increases wear and tear.

Why though? Due to increased torque?

Asks a real technical question about how the fluctuations cause turbine wear.
rocqua 2026-11-02 10:209/10informativeinsightful | parent | next [–]

The grid frequency is set directly by 3 phase generators. So if the grid frequency drops, there is indeed a very strong torque trying to decelerate the turbines.

To some extent, this is a good thing. Because it means the spinning mass of all turbines in the grid actually provide a buffer for sub-second mismatches in demand and supply. But it does mean that big demand spikes (or drops) put some wear on the systems. They are made for this, but if it gets very periodic it might be more than designed for.

Note that this means that all turbines in a power network are perfectly synchronized. And if they are not, they are subject to massive torques. This is why a cold start is so hard. You need to bring on generators from one central point to keep everything in sync. And as you bring on new generation capacity you also need to bring on new consumption, that electricity has to go somewhere.

The reason for this synchronization is because the generators are spinning a magnet past 3 coils, and those coils are directly wired into the power network. If your magnets are out of phase then effectively the entire power network will use those coils to generate a field to get that magnet back in sync. All of those coils on all those generators really are all hard-wired together, it still kind of blows my mind.

The grid frequency is set directly by 3 phase generators. So if the grid frequency drops, there is indeed a very strong torque trying to decelerate the turbines.

To some extent, this is a good thing. Because it means the spinning mass of all turbines in the grid actually provide a buffer for sub-second mismatches in demand and supply. But it does mean that big demand spikes (or drops) put some wear on the systems. They are made for this, but if it gets very periodic it might be more than designed for.

Note that this means that all turbines in a power network are perfectly synchronized. And if they are not, they are subject to massive torques. This is why a cold start is so hard. You need to bring on generators from one central point to keep everything in sync. And as you bring on new generation capacity you also need to bring on new consumption, that electricity has to go somewhere.

The reason for this synchronization is because the generators are spinning a magnet past 3 coils, and those coils are directly wired into the power network. If your magnets are out of phase then effectively the entire power network will use those coils to generate a field to get that magnet back in sync. All of those coils on all those generators really are all hard-wired together, it still kind of blows my mind.

Clear, detailed explanation of generator synchronization, torque and black-start challenges.

Practical Engineering did a great video on power grid black starts: https://www.youtube.com/watch?v=uOSnQM1Zu4w

Practical Engineering did a great video on power grid black starts: https://www.youtube.com/watch?v=uOSnQM1Zu4w

A relevant, good-quality resource on black starts.

Stuxnet damaged gas centrifuges by introducing a subtle change in rotational speed over time, eventually the motors failed mechanically.

https://en.wikipedia.org/wiki/Stuxnet

Stuxnet damaged gas centrifuges by introducing a subtle change in rotational speed over time, eventually the motors failed mechanically.

https://en.wikipedia.org/wiki/Stuxnet

Relevant real-world example of speed fluctuations causing mechanical failure.

Because a variation in force is a cycle of stress, which is more destructive than constant force. It's called hysteresis, leading to material fatigue.

Because a variation in force is a cycle of stress, which is more destructive than constant force. It's called hysteresis, leading to material fatigue.

Gives a mechanical-fatigue explanation for the wear from cyclic loading.

When the battery storage systems all temporarily pause providing grid inertia due to the state of charge check they’re performing, grid synchronized spinning mass has to compensate, which slows it down (transferring the kinetic energy to electrical energy), and then is sped back up as battery storage resumes inertia support.

Broadly speaking, it’s a collective momentum problem. If part of the system inertia sags, another part needs to step in to compensate for the inertia loss, otherwise you have brownouts and eventually, a blackout.

https://neutrino-energy.com/technology/grid-inertia/

When the battery storage systems all temporarily pause providing grid inertia due to the state of charge check they’re performing, grid synchronized spinning mass has to compensate, which slows it down (transferring the kinetic energy to electrical energy), and then is sped back up as battery storage resumes inertia support.

Broadly speaking, it’s a collective momentum problem. If part of the system inertia sags, another part needs to step in to compensate for the inertia loss, otherwise you have brownouts and eventually, a blackout.

https://neutrino-energy.com/technology/grid-inertia/

Explains the inertia mechanism behind turbine slowdowns, with a reference.
EdwardDiego 2026-11-02 09:20 | removed0/10tangential_annoyance | root | parent [–]

I wish that article wasn't written entirely in Claude speak, it has some useful information, but the obvious AI voice will repel readers.

I wish that article wasn't written entirely in Claude speak, it has some useful information, but the obvious AI voice will repel readers.

Complains about the writing style of a linked article.



About | This page on Hacker News | HN Guidelines | Data: HN API

Curious Hacker News is an unofficial, experimental mirror and is not affiliated with, endorsed by, or operated by Hacker News or Y Combinator. Original comments are by their authors on news.ycombinator.com; rewritten text is AI-generated and was not written by the commenter.