Hi, I found that in the scenario of a large amount of writing load, the memory used by the storage server process exceeds the --memory
limit, and the process does not restart. Is this a problem?
If you are using FDB 7.1 or later, memory limiting is now based on resident memory size instead of virtual memory size because the malloc implementation was changed from glibc malloc to jemalloc, which tends to have a much larger virtual memory footprint (I’ve observed up to 2x) for the same resident memory footprint.
Unfortunately, this process view is reporting virtual memory used instead of resident memory used, so it is misleading.
This will be fixed in FDB 7.3 by this PR.
You can also get the RSS size from the JSON status document, e.g. this command will dump address, RSS GB, limit GB in .csv format:
fdbcli --exec "status json" | jq -cr '.cluster.processes[] | [.address, .memory.rss_bytes / 1e9, .memory.limit_bytes / 1e9] | @csv'
1 Like