[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-nilfs
Subject: nilfs_cleanerd high CPU usage
From: Rodrigo Severo <rodrigo () fabricadeideias ! com>
Date: 2017-05-16 19:16:39
Message-ID: CAOdi6iZv-GSZfGmGbASpaXn26g8F2_F2J-ycDwJ421jcg+9iBA () mail ! gmail ! com
[Download RAW message or body]
Hi,
I currently have 7 disks formatted as nilfs, each one a 8 TB HD:
---------------------------------------------
# df -h -t nilfs2
Filesystem Size Used Avail Use% Mounted on
/dev/sde1 7.3T 362G 6.6T 6% /empauta/arquivo_06
/dev/sdc1 7.3T 6.3T 709G 90% /empauta/arquivo_03
/dev/sdg1 7.3T 6.2T 740G 90% /empauta/arquivo_01
/dev/sdh1 7.3T 5.8T 1.2T 84% /empauta/arquivo_02
/dev/sdi1 7.3T 5.9T 1.1T 85% /empauta/arquivo_04
/dev/sdf1 7.3T 1.8T 5.2T 26% /empauta/arquivo_05
/dev/sdj1 7.3T 5.7T 1.3T 83% /mnt/velho
---------------------------------------------
The cleanerd for the ones that got full enough are using what seems to
me as an excessive amount of CPU:
---------------------------------------------
# ps auxww | grep nilfs
root 1134 0.0 0.0 10716 124 ? S May13 0:00
/sbin/nilfs_cleanerd /dev/sde1 /empauta/arquivo_06
root 1147 13.4 0.1 40608 27316 ? D May13 614:40
/sbin/nilfs_cleanerd /dev/sdc1 /empauta/arquivo_03
root 7666 0.5 0.1 39704 27128 ? D May13 25:54
/sbin/nilfs_cleanerd /dev/sdg1 /empauta/arquivo_01
root 7679 4.7 0.1 39792 27368 ? S May13 217:54
/sbin/nilfs_cleanerd /dev/sdh1 /empauta/arquivo_02
root 7694 14.5 0.1 39792 27384 ? S May13 662:24
/sbin/nilfs_cleanerd /dev/sdi1 /empauta/arquivo_04
root 7705 0.0 0.0 10716 128 ? S May13 0:00
/sbin/nilfs_cleanerd /dev/sdf1 /empauta/arquivo_05
root 13579 0.0 0.0 10716 128 ? S May15 0:00
/sbin/nilfs_cleanerd /dev/sdj1 /mnt/velho
---------------------------------------------
I seeing nilfs_cleanerd processes with more than 25% CPU usage most of
the time and sometimes getting up to 40% CPU on a AMD FX 8320.
I'm using the ubuntu defaults on /etc/nilfs_cleanerd.conf:
---------------------------------------------
# cat /etc/nilfs_cleanerd.conf
# nilfs_cleanerd.conf - configuration file of NILFS cleaner daemon.
#
# This file contains GC parameters that are loaded when cleaner gets
# started. You can force them to be reloaded by sending a HUP signal
# to the cleaner process.
#
# Each parameter is declared with a keyword-value pair or a directive
# with no argument. Lines beginning with "#" are ignored. For
# details, see the man page of nilfs_cleanerd.conf(5).
# Protection period in second.
protection_period 3600
# Minimum number of clean segments
# 0 = continuous cleaning
# > 0 = pause cleaning until less segments are available
min_clean_segments 10%
# Maximum number of clean segments
max_clean_segments 20%
# The argument of min_clean_segments and max_clean_segments can be
# followed by a percent sign (%) or one of the following
# multiplicative suffixes: K 1024, MB 1000*1000, M 1024*1024, GB
# 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E.
#
# If the argument is followed by "%", it represents a disk capacity
# ratio.
# Clean segment check interval in seconds
clean_check_interval 10
# Segment selection policy.
# In NILFS version 2.0.0, only the timestamp policy is supported.
selection_policy timestamp # timestamp in ascend order
# The maximum number of segments to be cleaned at a time.
nsegments_per_clean 2
# The maximum number of segments to be cleaned at a time
# if clean segments < min_clean_segments
mc_nsegments_per_clean 4
# Cleaning interval in seconds.
cleaning_interval 5
# Cleaning interval in seconds
# if clean segments < min_clean_segments
mc_cleaning_interval 1
# Retry interval in seconds.
retry_interval 60
# Specify the minimum number of reclaimable blocks in a segment
# before it can be cleaned.
min_reclaimable_blocks 10%
# Specify the minimum number of reclaimable blocks in a segment
# before it can be cleaned.
# if clean segments < min_clean_segments
mc_min_reclaimable_blocks 1%
# The argument of min_reclaimable_blocks and mc_min_reclaimable_blocks
# can be followed by a percent sign (%) or one of the following
# multiplicative suffixes similar to min_clean_segments.
#
# If the argument is followed by "%", it represents a ratio for the
# number of blocks per segment.
# enable set_suinfo ioctl if supported
# (needed for min_reclaimable_blocks)
use_set_suinfo
# Use mmap when reading segments if supported.
use_mmap
# Log priority.
# Supported priorities are emerg, alert, crit, err, warning, notice, info, and
# debug.
log_priority info
---------------------------------------------
Is this normal? Is the clean operation such a high CPU usage one?
Is there a way to lower nilfs_cleanerd CPU usage without impacting the
cleaning process?
Regards,
Rodrigo Severo
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic