#2145·DnsServer

Periodic OOM: Technitium DNS Server dotnet process grows to ~5.1 GB RSS and is killed by Linux

Author: vatakadCreated Sep 11, 2026Updated Sep 12, 2026

Hello,

I am experiencing a recurring out-of-memory (OOM) problem with Technitium DNS Server.

Environment:

  • Technitium DNS Server: 15.4
  • The same problem also occurred previously on version 14.6
  • Linux VM
  • Two DNS servers with the same/similar configuration
  • No swap configured

The problem is periodic. The Technitium dotnet process starts normally with approximately 500-600 MB RSS, but after some time its resident memory usage increases significantly. Eventually, the Linux kernel runs out of available memory and kills the Technitium dotnet process.

I do not see a significant increase in DNS query traffic before the OOM events.

The same behavior has occurred on both DNS servers.

For example, on DNS1, the latest OOM event occurred at 21:51:27:

.NET Sockets invoked oom-killer

oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/dns.service,task=dotnet,pid=7794,uid=0

Out of memory: Killed process 7794 (dotnet) total-vm:18186076kB, anon-rss:5366016kB, file-rss:256kB, shmem-rss:33152kB, UID:0, pgtables:13480kB, oom_score_adj:0

At the time of the OOM:

  • dotnet total virtual memory: ~17.3 GiB
  • anonymous RSS: ~5.12 GiB
  • file RSS: almost zero
  • shared memory: ~32 MB

The kernel reports this as a global OOM:

global_oom constraint=CONSTRAINT_NONE

The process was killed by the Linux kernel, and systemd automatically restarted the DNS service.

The restart happened 10 seconds later:

21:51:27 - dotnet process killed 21:51:37 - systemd started the DNS service 21:51:44 - Technitium DNS Server started successfully

Image

After the restart, the new dotnet process was using only about 500 MB RSS.

Current process information shortly after the restart:

VmPeak: 18141068 kB VmSize: 18141036 kB VmRSS: 496652 kB VmData: 1555036 kB VmStk: 132 kB VmExe: 60 kB VmLib: 64824 kB VmPTE: 2000 kB Threads: 141

The corresponding ps output showed:

RSS: ~550 MB VSZ: ~18 GB

Therefore, the virtual memory size (VSZ/VmSize) is approximately 18 GB both shortly after startup and before the OOM. The significant change appears to be the resident memory (RSS), which grows from approximately 500-600 MB to more than 5 GB.

I have observed almost the same memory usage at OOM on both DNS servers:

DNS1: anon-rss: ~5.15 GB

DNS2: anon-rss: ~5.14 GB

DNS1 again: anon-rss: ~5.12 GB

This is a recurring pattern rather than a single isolated event.

I also want to clarify that this does not appear to be specific to Technitium DNS Server 15.4. I previously experienced the same behavior on version 14.6.

I have also not observed a significant increase in DNS query volume before the OOM events.

The server does not have swap configured.

Could this be related to a memory leak or some other type of unbounded memory growth in Technitium DNS Server, for example in the resolver, cache, statistics, DNSSEC processing, networking, or another subsystem?

I would also like to determine whether this memory is being consumed by the .NET managed heap or by native/unmanaged allocations.

What would be the best diagnostics to collect before the next OOM?

Thank you.

Source: TechnitiumSoftware/DnsServer