mirror of
https://github.com/hoytech/strfry.git
synced 2025-06-17 16:58:50 +00:00
setrlimit nofiles config
This commit is contained in:
@ -105,6 +105,10 @@ config:
|
|||||||
desc: "Port to open for the nostr websocket protocol"
|
desc: "Port to open for the nostr websocket protocol"
|
||||||
default: 7777
|
default: 7777
|
||||||
noReload: true
|
noReload: true
|
||||||
|
- name: relay__nofiles
|
||||||
|
desc: "Set OS-limit on maximum number of open files/sockets (if 0, don't attempt to set)"
|
||||||
|
default: 1000000
|
||||||
|
noReload: true
|
||||||
|
|
||||||
- name: relay__info__name
|
- name: relay__info__name
|
||||||
desc: "NIP-11: Name of this server. Short/descriptive (< 30 characters)"
|
desc: "NIP-11: Name of this server. Short/descriptive (< 30 characters)"
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/resource.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include "golpe.h"
|
#include "golpe.h"
|
||||||
|
|
||||||
const size_t CURR_DB_VERSION = 1;
|
const size_t CURR_DB_VERSION = 1;
|
||||||
|
|
||||||
void onAppStartup(lmdb::txn &txn, const std::string &cmd) {
|
static void dbCheck(lmdb::txn &txn, const std::string &cmd) {
|
||||||
auto dbTooOld = [&](uint64_t ver) {
|
auto dbTooOld = [&](uint64_t ver) {
|
||||||
LE << "Database version too old: " << ver << ". Expected version " << CURR_DB_VERSION;
|
LE << "Database version too old: " << ver << ". Expected version " << CURR_DB_VERSION;
|
||||||
LE << "You should 'strfry export' your events, delete (or move) the DB files, and 'strfry import' them";
|
LE << "You should 'strfry export' your events, delete (or move) the DB files, and 'strfry import' them";
|
||||||
@ -47,3 +52,21 @@ void onAppStartup(lmdb::txn &txn, const std::string &cmd) {
|
|||||||
dbTooNew(s->dbVersion());
|
dbTooNew(s->dbVersion());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void setRLimits() {
|
||||||
|
if (!cfg().relay__nofiles) return;
|
||||||
|
struct rlimit curr;
|
||||||
|
|
||||||
|
if (getrlimit(RLIMIT_NOFILE, &curr)) throw herr("couldn't call getrlimit: ", strerror(errno));
|
||||||
|
|
||||||
|
if (cfg().relay__nofiles > curr.rlim_max) throw herr("Unable to set NOFILES limit to ", cfg().relay__nofiles, ", exceeds max of ", curr.rlim_max);
|
||||||
|
|
||||||
|
curr.rlim_cur = cfg().relay__nofiles;
|
||||||
|
|
||||||
|
if (setrlimit(RLIMIT_NOFILE, &curr)) throw herr("Failed setting NOFILES limit to ", cfg().relay__nofiles, ": ", strerror(errno));
|
||||||
|
}
|
||||||
|
|
||||||
|
void onAppStartup(lmdb::txn &txn, const std::string &cmd) {
|
||||||
|
dbCheck(txn, cmd);
|
||||||
|
setRLimits();
|
||||||
|
}
|
||||||
|
17
strfry.conf
17
strfry.conf
@ -2,9 +2,17 @@
|
|||||||
## Default strfry config
|
## Default strfry config
|
||||||
##
|
##
|
||||||
|
|
||||||
# Directory that contains strfry database (restart required)
|
# Directory that contains the strfry LMDB database (restart required)
|
||||||
db = "./strfry-db/"
|
db = "./strfry-db/"
|
||||||
|
|
||||||
|
dbParams {
|
||||||
|
# Maximum number of threads/processes that can simultaneously have LMDB transactions open (restart required)
|
||||||
|
maxreaders = 256
|
||||||
|
|
||||||
|
# Size of mmap() to use when loading LMDB (does *not* correspond to disk-space used, default is 10TB) (restart required)
|
||||||
|
mapsize = 10995116277760
|
||||||
|
}
|
||||||
|
|
||||||
relay {
|
relay {
|
||||||
# Interface to listen on. Use 0.0.0.0 to listen on all interfaces (restart required)
|
# Interface to listen on. Use 0.0.0.0 to listen on all interfaces (restart required)
|
||||||
bind = "127.0.0.1"
|
bind = "127.0.0.1"
|
||||||
@ -12,6 +20,9 @@ relay {
|
|||||||
# Port to open for the nostr websocket protocol (restart required)
|
# Port to open for the nostr websocket protocol (restart required)
|
||||||
port = 7777
|
port = 7777
|
||||||
|
|
||||||
|
# Set OS-limit on maximum number of open files/sockets (if 0, don't attempt to set) (restart required)
|
||||||
|
nofiles = 1000000
|
||||||
|
|
||||||
info {
|
info {
|
||||||
# NIP-11: Name of this server. Short/descriptive (< 30 characters)
|
# NIP-11: Name of this server. Short/descriptive (< 30 characters)
|
||||||
name = "strfry default"
|
name = "strfry default"
|
||||||
@ -42,10 +53,10 @@ relay {
|
|||||||
maxFilterLimit = 500
|
maxFilterLimit = 500
|
||||||
|
|
||||||
compression {
|
compression {
|
||||||
# Use permessage-deflate compression if supported by client. Reduces bandwidth, but slight increase in CPU
|
# Use permessage-deflate compression if supported by client. Reduces bandwidth, but slight increase in CPU (restart required)
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
||||||
# Maintain a sliding window buffer for each connection. Improves compression, but uses more memory
|
# Maintain a sliding window buffer for each connection. Improves compression, but uses more memory (restart required)
|
||||||
slidingWindow = true
|
slidingWindow = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user