-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
txg_sync thread stuck #3602
Comments
If this is the same as #3532 you can work around this bug by setting |
@behlendorf I agree with you. We ran into a similar issue and 1cd7773 did solve the issue for us |
Unless @snajpa is running the "top" branch, which I doubt, the patch should be already included in his stack (master branch) Providing some more info when this gets triggered and special bootup (kernel append) settings - if it differs from the default, top output, dmesg, etc. could help |
Maybe unrelated problem, as my trace is different. txg_sync isn't exactly stuck, it just endlessly eats 100% CPU. Running Git Top (up to 905edb4) Linux version 3.16.7-21-desktop (geeko@buildhost) (gcc version 4.8.3 20140627 [gcc-4_8-branch revision 212064](SUSE Linux) ) #1 SMP PREEMPT Tue Apr 14 07:11:37 UTC 2015 (93c1539) Stack trace keeps cycling through lots of stuff mostly through sp_kmem_cache_free and extract_buf. No special flags to module or kernel, no dedup on the pool, some processes on the pool get into D state: top - 11:47:54 up 4 days, 2:23, 7 users, load average: 7.42, 7.71, 9.78 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
It was certainly due to low memory situation, somehow the amount of dirty data for syncing has blown out of proportion all the way to hit zfs_dirty_data_max; that was 13 GB for that system, so it has run into problems with allocating this much memory. So I've set that limit to 1GB, it did help, but didn't resolve the associated performance problems. The version I'm running already does include fix from PR#3557. Still, txg sync looks really weird. It has a really long way to go to resemble those nice 5s txg sync windows I was used to seeing. My guess (and judging from watching zfs iostat) is, that ZFS is now overloading some VDEVs to the point the whole txg sync gets delayed because of some single VDEV (2way spindle mirrors in my case). That's on some machines, but on more idle machines the syncs aren't even waiting for the timeout, neither for dirty_data_sync to start syncing out. What I'm seeing even on totally idle machine - I've set txg_timeout to 15s to make it even more visible:
|
@snajpa some points to look into for you: #3616 (ZFS IO can stall for a second or more under memory pressure #3616) #3607 (send performance is very bad while all cpu occupy by low priority process #3607), |
The comment about uneven distribution of workloads to VDEVs caught my eye - i've been seeing similar things in our systems, but without the associated crash, just resulting in hiccups on pools running 6+ disks in a RAIDZ2 setup. ZFS' iostat is pretty useful for this, but the way i managed to pin it down was via iostat -xyz $(lsblk | awk '/^sd/{print$1}') 1 which clearly shows several disks in the same raidz2 vdev being pegged at 100% util while others are basically idle (these are identical disks, on the same LSI controller). These systems aren't using @rdolbeau's ASM patches yet as i'm still ironing those out in lab (fearful of anything which might possibly cause a bad write), but that was to be my next step in testing as i was hoping it was some raidz layout calculation lag... |
Close as stale. If it's actual - feel free to reopen. |
Running https://github.com/vpsfreecz/zfs version,
Kernel OpenVZ 2.6.32-042stab108.5 kernel, based on roughly RHEL6 504.16.2.el6
It happens (almost?) on all of our machines with this kernel and zfs build.
What can I provide more to hunt this one down?
The text was updated successfully, but these errors were encountered: