diff --git a/internal/debug/api.go b/internal/debug/api.go
index 7583878ed575e53dae1f1696060eafef34214fb1..3547b0564167d07d5c6a7ed65e6be70e02f958c8 100644
--- a/internal/debug/api.go
+++ b/internal/debug/api.go
@@ -181,6 +181,12 @@ func (*HandlerT) FreeOSMemory() {
 	debug.FreeOSMemory()
 }
 
+// SetGCPercent sets the garbage collection target percentage. It returns the previous
+// setting. A negative value disables GC.
+func (*HandlerT) SetGCPercent(v int) int {
+	return debug.SetGCPercent(v)
+}
+
 func writeProfile(name, file string) error {
 	p := pprof.Lookup(name)
 	log.Info("Writing profile records", "count", p.Count(), "type", name, "dump", file)
diff --git a/internal/web3ext/web3ext.go b/internal/web3ext/web3ext.go
index 927085b4416685772ba6ad319fedc15278efbe53..215eae7010ede7f1c1a25097662a0a4ffca97985 100644
--- a/internal/web3ext/web3ext.go
+++ b/internal/web3ext/web3ext.go
@@ -267,6 +267,11 @@ web3._extend({
 			call: 'debug_freeOSMemory',
 			params: 0,
 		}),
+		new web3._extend.Method({
+			name: 'setGCPercent',
+			call: 'debug_setGCPercent',
+			params: 1,
+		}),
 		new web3._extend.Method({
 			name: 'memStats',
 			call: 'debug_memStats',