journal日志部分参数理解

详细参数请参考http://0pointer.de/public/systemd-man/journald.conf.html

某单板参数如下:

[Journal]
Storage=persistent
存储在disk
#Compress=yes
#Seal=yes
#SplitMode=uid
SyncIntervalSec=2s
间隔2秒存入disk
RateLimitInterval=0
RateLimitBurst=0
SystemMaxUse=300M
journal日志使用的最大存储空间
如果不配置,默认取当前文件系统的10%存储空间,做页对齐。同时进一步判断,这10%是否大于4G或者小于1M。所以最大等于4G,最小等于1M。
如果配置了,对配置值做页对齐,同时判断是否小于1M。小于1M取1M。
如果存储空间小于单个日志文件大小的2倍,存储空间会变为单个日志文件大小的2倍。
统计已经使用的存储空间时,只会在相应的文件夹统计以*.journal或者*.journal~(上次异常断电导致残缺的文件)结尾的文件,system.journal是当前实时存储的文件。
#SystemKeepFree=
#SystemMaxFileSize=
单个journal日志文件大小
默认单个journal日志文件大小等于SystemMaxUse/8,做页对齐。不管如何配置,单个文件最大128MB,最小512KB。
如果SystemMaxUse/8大于8M,journal会默认在disk上一次性预留8M空间,即文件一创建就是8M大小。然后逐步往文件填充内容,填满8M后,会继续追加disk空间。
实例:如果SystemMaxUse/8=30M,那么30M会以8+8+8+6的大小变化增加。
#SystemMaxFiles=100
默认最多存100个日志文件
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg

因为journal是定时清理,或者条件触发清理存储空间大小。所以偶尔会出现最大<(300+300/8)M大小的存储占用空间。当存储空间为约299M(混有文件*.journal~),没有清理文件,再创建日志文件并追加日志文件时,会出现大于300M的情况。

总结,journal的工作原理导致会出现存储空间偶尔接近SystemMaxUse+SystemMaxFileSize的情况。所以建议留给Journal日志空间的大小至少为SystemMaxUse+SystemMaxFileSize=300+37.5=337.5M大小。

你可能感兴趣的:(linux学习笔记)