# Other Methods To Reduce Memory Usage

+ Adjusting the GO memory release strategy
  + GO  Runtime When freeing memory and return to the kernel, Linux There are two strategies under the platform:
    + `MADV_DONTNEED` 
    + `MADV_FREE` 
  + TiDB Server Add `GODEBUG=madvdontneed=1` environment variable before starting
+ restart rolling basis TiDB Server 

-------------------------------------------------------------
Through the TiDB-Runtime --> Memroy Usage panel in Grafana, confirm that if the abnormal memory usage is caused by non-SQL, that is, the non-yellow part is abnormally occupied, you can try the following methods:
- Adjust GO memory release strategy
When GO's Runtime releases memory and returns to the kernel, there are the following two strategies under the Linux platform:
   - MADV_DONTNEED: The number of RSS will drop quickly, but the efficiency is relatively low
   - MADV_FREE : Runtime uses a more efficient MADV_FREE when releasing memory, that is, the kernel will not release until the memory is tight. This memory can still be reused until it is released. This feature has been supported since the Linux 4.5 kernel
Add the GODEBUG=madvdontneed=1 environment variable before TiDB Server starts, and the memory will be returned to the operating system immediately during GC, reducing memory usage.
- Rolling restart of TiDB Server

