bitflicker64 commented on code in PR #535: URL: https://github.com/apache/hugegraph-doc/pull/535#discussion_r4304096193
########## content/en/docs/quickstart/hugegraph/hugegraph-hstore.md: ########## @@ -205,8 +206,8 @@ This file contains only `rocksdb` and Actuator exposure settings. | Key | Master distribution value | Code default | Meaning | |-----|---------|--------------|---------| -| `rocksdb.total_memory_size` | `32000000000` | `51539607552` | Memory budget shared by all RocksDB instances on this node. When absent or `0`, the node uses the JVM max heap instead. | -| `rocksdb.write_buffer_size` | `32000000` | `33554432` | Memtable size in bytes. When absent or `0`, the node uses `total_memory_size / 1000`. | +| `rocksdb.total_memory_size` | `0` | Auto-sized, see Meaning | Memory budget in bytes shared by all RocksDB instances on this node, split into the write cache and the block cache by `write_buffer_ratio`. Both caches are off-heap, so `-Xmx` does not limit them, and a fixed 1 GiB Raft log cache comes on top. When absent or `0`, the node uses half of the memory left after the JVM max heap, `MaxDirectMemorySize` (counted as the heap size when unset; `bin/start-hugegraph-store.sh` sets it to the heap it picks unless `-j` sets `-Xmx`, `-XX:MaxHeapSize` or the cap itself) and a 1.5 GiB reserve, clamped to 256 MiB to 32 GB. In a container the starting point is the cgroup memory limit when one is set, including a limit set only on a parent cgroup the Store can see; otherwise it is the host's memory. An `application-pd.yml` kept from an earlier release still sets `32000000000`; set it to `0` to auto-size. A positive value is used as given and must be plain bytes, at least `1048576` (1 MiB); a smaller value or one such as `4GB` stops startup. | Review Comment: Minor: The launcher section of this page still recommends `-j "-Xmx32g -Xms32g"` for production (line 322, and line 316 of the CN page), and with apache/hugegraph#3355 that advice collapses the auto-sized budget this row describes. At the #3355 head (37597c441), a `-j` with `-Xmx` drops `-XX:MaxDirectMemorySize`, so the JVM default direct limit equals the 32 GiB heap and `RocksdbMemoryBudget.directMemory()` counts it as such. On a 64 GiB host that is 64 - 32 - 32 - 1.5 < 0, so `auto()` returns the 256 MiB floor and logs the floor warning. Any host under about 66 GiB gets the floor. The #3355 deployment guide gives `-j "-Xmx36g -XX:MaxDirectMemorySize=2g"` for this reason. The same paragraph also lists the flags the script adds and now misses `-XX:MaxDirectMemorySize`. Please add a direct-memory cap to that example, for example `-j "-Xmx32g -Xms32g -XX:MaxDirectMemorySize=2g"`, and list the cap among the flags the script adds, on both pages. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
