发布于 2016-10-18 12:42:26 | 207 次阅读 | 评论: 0 | 来源: PHPERZ
注意
重要
max open files(最大文件描述符数)
的内容, 请参考 [1]. 否则, 你会在 log.txt 看到 Too many open files
类似的错误, 或者在客户端看到 Connection reset by peer
错误./etc/security/limits.d/90-nproc.conf
相关).PS: 使用这个 c1000k 工具来测试你的系统最多支持多少并发连接.
server:
ip: 127.0.0.1
port: 8888
默认的配置文件监听 127.0.0.1
本地回路网络, 所以无法从其它机器上连接此 SSDB 服务器. 如果你希望从其它机器上连接 SSDB 服务器, 必须把 127.0.0.1
改为 0.0.0.0
.
同时, 利用配置文件的 deny, allow
指令限制可信的来源 IP 访问.
警告!
0.0.0.0
IP 可能导致被任意机器访问到你的数据, 这很可能是一个安全问题! 你可以结合操作系统的 iptables 来限制网络访问.
server:
readonly: yes|no
SSDB 可以工作在只读模式下, 在只读模式下, 所有的写操作命令都会被服务端拒绝:
ssdb 127.0.0.1:8888> set a 2
client_error: Forbidden Command: set
(0.000 sec)
默认配置文件不设置此选项, 那表示可读可写.
另外参见 日志解读
logger.level
日志级别支持的日志级别有: debug, info, warn, error, fatal
.
一般, 建议你将 logger.level
设置为 debug
级别.
logger.output
日志输出可直接写相对路径或者绝对路径, 如果相对路径, 则是相对配置文件所在的目录.
如果你想输出日志到终端屏幕, 编辑 ssdb.conf, 将
logger:
output: log.txt
修改为
logger:
output: stdout
logger.rorate.size
日志循环和清理设置日志拆分时的大小, 单位为字节数. 按照默认的配置, 日志会按 1000MB 大小进行切分, 切分后的文件名格式如: log.txt.20150723-230422
.
切分后的日志文件不会自动被清理, 你需要自己写 crontab 脚本来清理.
leveldb.cache_size
内存缓存大小一般地, 这个数字越大, 性能越好. 如果你的机器内存较小, 那就把它改小, 最小值是 16.
leveldb.block_size
不用关心
leveldb.write_buffer_size
写缓冲区大小
如果你的机器内存小, 那就把它改小, 否则改大. 它应该在这个范围内: [4, 128]
;
leveldb.compaction_speed
一般情况下, 不用关心. 如果你的硬盘性能非常差, 同时, 你的数据几乎不变动, 也没有什么新数据写入, 可以把它改小(最好大于 50).
leveldb.compression
压缩硬盘上的数据最好设置为 yes
! 如果是 yes
, 一般你能存储 10 倍硬盘空间的数据, 而且性能会更好.
一个 ssdb-server 实例占用的内存瞬时(有可能, 而且即使达到, 也只是持续短时间)最高达到(MB):
cache_size + write_buffer_size * 66 + 32
这是对于压缩选项没有开启的情况, 如果 compression: yes
, 计算公式是:
cache_size + 10 * write_buffer_size * 66 + 32
你可以调整配置参数, 限制 ssdb-server 的内存占用.