[Bug 275594] High CPU usage by arc_prune; analysis and fix

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 03 Apr 2024 21:49:34 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275594

--- Comment #107 from karl@denninger.net ---
(In reply to Olivier Certner from comment #106)

Source and object on ZFS, drives are SATA/SSDs (enterprise models; Micron and
Kingston) on ada (board channels, not on a host adapter), 32Gb memory and
6-core Xeon.  2-drive mirror, both geli-encrypted -- that pool has root, source
and object directories on it.

[karl@NewFS /usr/src/release]$ zpool status zsr
  pool: zsr
 state: ONLINE
  scan: scrub repaired 0B in 00:30:24 with 0 errors on Fri Mar 29 03:56:04 2024
config:

        NAME            STATE     READ WRITE CKSUM
        zsr             ONLINE       0     0     0
          mirror-0      ONLINE       0     0     0
            ada0p4.eli  ONLINE       0     0     0
            ada1p4.eli  ONLINE       0     0     0

errors: No known data errors


Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.3-STABLE stable/13-n257639-51b2556ee60a KSD-SMP amd64
FreeBSD clang version 17.0.6 (https://github.com/llvm/llvm-project.git
llvmorg-17.0.6-0-g6009708b4367)
VT(efifb): resolution 1024x768
CPU: Intel(R) Xeon(R) E-2146G CPU @ 3.50GHz (3500.00-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x906ea  Family=0x6  Model=0x9e  Stepping=10
 
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
 
Features2=0x7ffafbff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x121<LAHF,ABM,Prefetch>
  Structured Extended
Features=0x29c6fbf<FSGSBASE,TSCADJ,SGX,BMI1,HLE,AVX2,SMEP,BMI2,ERMS,INVPCID,RTM,NFPUSG,MPX,RDSEED,ADX,SMAP,CLFLUSHOPT,PROCTRACE>
  Structured Extended Features2=0x40000000<SGXLC>
  Structured Extended
Features3=0x9c002400<MD_CLEAR,TSXFA,IBPB,STIBP,L1DFL,SSBD>
  XSAVE Features=0xf<XSAVEOPT,XSAVEC,XINUSE,XSAVES>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics
real memory  = 34359738368 (32768 MB)
avail memory = 33186074624 (31648 MB)

It is repeatable on a build from a clean boot.

Also misbehaves on a clean boot if, post buildworld/buildkernel I build a
memstick image (cd /usr/src/release; make memstick) post updating to the
most-current -STABLE.  I usually do this since I want the recovery USB stick to
be current once I know the system runs ok and I got the same behavior right
after "make installkernel/reboot single-user/make installworld/reboot
multiuser."

In both cases the system sits with the kernel arc thread and vnlru both
consuming crazy amounts of CPU; load average is upward of 6 for 10+ minutes
after the build completes but it does eventually clear.  The machine is not
locked up from a user perspective but it is getting hammered.

-- 
You are receiving this mail because:
You are the assignee for the bug.