diff --git a/plugins/metrics/plugin.go b/plugins/metrics/plugin.go
index 974ed49d60ff5edeaea8ea0fb1491a0701944065..bd99aac4c8c58c0111b73937ead5235e4f1ce423 100644
--- a/plugins/metrics/plugin.go
+++ b/plugins/metrics/plugin.go
@@ -43,14 +43,10 @@ func configure(_ *node.Plugin) {
 		analysisOutboundBytes.Add(amountBytes)
 	}))
 	metrics.Events().CPUUsage.Attach(events.NewClosure(func(cpuPercent float64) {
-		cpuLock.Lock()
-		defer cpuLock.Unlock()
-		_cpuUsage = cpuPercent
+		cpuUsage.Store(cpuPercent)
 	}))
 	metrics.Events().MemUsage.Attach(events.NewClosure(func(memAllocBytes uint64) {
-		memUsageLock.Lock()
-		defer memUsageLock.Unlock()
-		_memUsageBytes = memAllocBytes
+		memUsageBytes.Store(memAllocBytes)
 	}))
 	metrics.Events().Synced.Attach(events.NewClosure(func(synced bool) {
 		syncLock.Lock()
diff --git a/plugins/metrics/process.go b/plugins/metrics/process.go
index 137844b4cb19665a7dcd8005c01328e0607a1016..10dc44231219f174824d7186b9f681a0c3e5f2f4 100644
--- a/plugins/metrics/process.go
+++ b/plugins/metrics/process.go
@@ -5,22 +5,18 @@ import (
 	"time"
 
 	"github.com/iotaledger/goshimmer/packages/metrics"
-	"github.com/iotaledger/hive.go/syncutils"
 	"github.com/shirou/gopsutil/cpu"
+	"go.uber.org/atomic"
 )
 
 var (
-	_cpuUsage      float64
-	cpuLock        syncutils.RWMutex
-	_memUsageBytes uint64
-	memUsageLock   syncutils.RWMutex
+	cpuUsage      atomic.Float64
+	memUsageBytes atomic.Uint64
 )
 
 // CpuUsage returns the current cpu usage
 func CpuUsage() float64 {
-	cpuLock.RLock()
-	defer cpuLock.RUnlock()
-	return _cpuUsage
+	return cpuUsage.Load()
 }
 
 func measureCPUUsage() {
@@ -42,7 +38,5 @@ func measureMemUsage() {
 
 // MemUsage returns the current memory allocated as bytes
 func MemUsage() uint64 {
-	memUsageLock.RLock()
-	defer memUsageLock.RUnlock()
-	return _memUsageBytes
+	return memUsageBytes.Load()
 }