add a doc on environment variables that can be used to tweak lotus
This commit is contained in:
parent
d8a669c85a
commit
2010bf55b7
@ -67,6 +67,12 @@
|
||||
"slug": "en+setup-troubleshooting",
|
||||
"github": "en/setup-troubleshooting.md",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"title": "Environment Variables",
|
||||
"slug": "en+env-vars",
|
||||
"github": "en/environment-vars.md",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
},
|
||||
|
60
documentation/en/environment-vars.md
Normal file
60
documentation/en/environment-vars.md
Normal file
@ -0,0 +1,60 @@
|
||||
# Lotus Environment Variables
|
||||
|
||||
## Building
|
||||
|
||||
## Common
|
||||
|
||||
The environment variables are common across most lotus binaries.
|
||||
|
||||
### `LOTUS_FD_MAX`
|
||||
|
||||
Sets the file descriptor limit for the process. This should be set high (8192
|
||||
or higher) if you ever notice 'too many open file descriptor' errors.
|
||||
|
||||
### `LOTUS_JAEGER`
|
||||
|
||||
This can be set to enable jaeger trace reporting. The value should be the url
|
||||
of the jaeger trace collector, the default for most jaeger setups should be
|
||||
`localhost:6831`.
|
||||
|
||||
### `LOTUS_DEV`
|
||||
|
||||
If set to a non-empty value, certain parts of the application will print more
|
||||
verbose information to aid in development of the software. Not recommended for
|
||||
end users.
|
||||
|
||||
## Lotus Daemon
|
||||
|
||||
### `LOTUS_PATH`
|
||||
|
||||
Sets the location for the lotus daemon on-disk repo. If left empty, this defaults to `~/.lotus`.
|
||||
|
||||
### `LOTUS_SKIP_GENESIS_CHECK`
|
||||
|
||||
Can be set to `_yes_` if you wish to run a lotus network with a different
|
||||
genesis than the default one built into your lotus binary.
|
||||
|
||||
### `LOTUS_CHAIN_TIPSET_CACHE`
|
||||
|
||||
Sets the cache size for the chainstore tipset cache. The default value is 8192,
|
||||
but if your usage of the lotus API involves frequent arbitrary tipset lookups,
|
||||
you may want to increase this.
|
||||
|
||||
### `LOTUS_CHAIN_INDEX_CACHE`
|
||||
|
||||
Sets the cache size for the chainstore epoch index cache. The default value is 32768,
|
||||
but if your usage of the lotus API involves frequent deep chain lookups for
|
||||
block heights that are very far from the current chain height, you may want to
|
||||
increase this.
|
||||
|
||||
|
||||
|
||||
## Lotus Miner
|
||||
|
||||
A number of environment variables are respected for configuring the behavior of the filecoin proving subsystem. For more details on those [see here](https://github.com/filecoin-project/rust-fil-proofs/#settings).
|
||||
|
||||
### `LOTUS_MINER_PATH`
|
||||
|
||||
Sets the location for the lotus miners on-disk repo. If left empty, this defaults to `~/.lotusminer`.
|
||||
|
||||
|
@ -28,14 +28,19 @@ const minFds = 2048
|
||||
// default max file descriptor limit.
|
||||
const maxFds = 16 << 10
|
||||
|
||||
// userMaxFDs returns the value of IPFS_FD_MAX
|
||||
// userMaxFDs returns the value of LOTUS_FD_MAX
|
||||
func userMaxFDs() uint64 {
|
||||
// check if the IPFS_FD_MAX is set up and if it does
|
||||
// check if the LOTUS_FD_MAX is set up and if it does
|
||||
// not have a valid fds number notify the user
|
||||
if val := os.Getenv("IPFS_FD_MAX"); val != "" {
|
||||
val := os.Getenv("LOTUS_FD_MAX")
|
||||
if val == "" {
|
||||
val = os.Getenv("IPFS_FD_MAX")
|
||||
}
|
||||
|
||||
if val != "" {
|
||||
fds, err := strconv.ParseUint(val, 10, 64)
|
||||
if err != nil {
|
||||
log.Errorf("bad value for IPFS_FD_MAX: %s", err)
|
||||
log.Errorf("bad value for LOTUS_FD_MAX: %s", err)
|
||||
return 0
|
||||
}
|
||||
return fds
|
||||
@ -44,7 +49,7 @@ func userMaxFDs() uint64 {
|
||||
}
|
||||
|
||||
// ManageFdLimit raise the current max file descriptor count
|
||||
// of the process based on the IPFS_FD_MAX value
|
||||
// of the process based on the LOTUS_FD_MAX value
|
||||
func ManageFdLimit() (changed bool, newLimit uint64, err error) {
|
||||
if !supportsFDManagement {
|
||||
return false, 0, nil
|
||||
@ -93,7 +98,7 @@ func ManageFdLimit() (changed bool, newLimit uint64, err error) {
|
||||
|
||||
if newLimit < userLimit {
|
||||
err = fmt.Errorf(
|
||||
"failed to raise ulimit to IPFS_FD_MAX (%d): set to %d",
|
||||
"failed to raise ulimit to LOTUS_FD_MAX (%d): set to %d",
|
||||
userLimit,
|
||||
newLimit,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user