Skip to content
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

Load average inflated by +2 #175

Closed
behlendorf opened this issue Mar 28, 2011 · 1 comment
Closed

Load average inflated by +2 #175

behlendorf opened this issue Mar 28, 2011 · 1 comment

Comments

@behlendorf
Copy link
Contributor

Thanks, for reporting the issue. This is caused by the txg_quiesce and
txg_sync threads sleeping uninterruptibly. This is just an artifact of
how Linux computes the load average. Those threads really are idle and
your load average is simply overinflated by 2.

I'll look in to getting those two threads to sleep interruptibly so they
don't count toward the load average in the future.

Thanks,
Brian

On Sun, 2011-03-27 at 18:08 -0700, Michael Martin wrote:

Thanks for the ZFS on Linux effort.

I've noticed whenever a pool is loaded, the system load average is
higher than normal and stays there on a pool with no read/write
activity. Basic steps to reproduce:

  1. Go to init level 1 to be sure nothing else is causing the load
  2. Verify no pools are loaded and note the system load average is
    about 0.05
  3. Import the single test pool from a usb 1G flash drive ( zpool
    import test )
  4. Watch the load average climb to 2.00 and stay there. cpu's are
    idle and vmstat/iotop confirm very little io.
  5. 'zpool export test' and the load slowly drops back down

This is using latest spl git and zfs git on kernel 2.6.38.1 amd64. I
know performance tweaks on on the way, but wanted to mention this
issue. Let me know if I can help debug.

Thanks again for all the work put into this.

@behlendorf
Copy link
Contributor Author

Fix inflated load average

Kernel threads which sleep uninterruptibly on Linux are marked in the (D)
state. These threads are usually in the process of performing IO and are
thus counted against the load average. The txg_quiesce and txg_sync threads
were always sleeping uninterruptibly and thus inflating the load average.

This change makes them sleep interruptibly. Some care is required however
because these threads may now be woken early by signals. In this case the
callers are all careful to check that the required conditions are met after
waking up. If we're woken early due to a signal they will simply go back
to sleep. In this case these changes are safe.

Closed by bfd214a

behlendorf pushed a commit that referenced this issue Aug 1, 2011
Note that with the current ZFS code, it turns out that the vdev
cache is not helpful, and in some cases actually harmful.  It
is better if we disable this.  Once some time has passed, we
should actually remove this to simplify the code.  For now we
just disable it by setting the zfs_vdev_cache_size to zero.
Note that Solaris 11 has made these same changes.

References to Illumos issue and patch:
- https://www.illumos.org/issues/175
- illumos/illumos-gate@b68a40a845

Reviewed by: George Wilson <[email protected]>
Reviewed by: Eric Schrock <[email protected]>
Approved by: Richard Lowe <[email protected]>

Signed-off-by: Brian Behlendorf <[email protected]>
Issue #340
behlendorf added a commit that referenced this issue Aug 1, 2011
Merge in ten upstream fixes which have already been made to both
the Illumos and FreeBSD ZFS implementations.  This brings us up
to date with the latest ZFS changes in Illumos.

Credit goes to Martin Matuska of the FreeBSD project for posting
an excellent summary of the upstream patches we were missing.

Illumos #1313: Integer overflow in txg_delay()
Illumos #278:  get rid zfs of python and pyzfs dependencies
Illumos #1043: Recursive zfs snapshot destroy fails
Illumos #883:  ZIL reuse during remount corruption
Illumos #1092: zfs refratio property
Illumos #1051: zfs should handle
Illumos #510:  'zfs get' enhancement - mountpoint as an argument
Illumos #175:  zfs vdev cache consumes excessive memory
Illumos #764:  panic in zfs:dbuf_sync_list
Illumos #xxx:  zdb -vvv broken after zfs diff integration

Signed-off-by: Brian Behlendorf <[email protected]>
Closes #340
sdimitro pushed a commit to sdimitro/zfs that referenced this issue Feb 14, 2022
Change most of the root connection requests to use serde to deserialize
the request from the nvlist, and to serialize the response to an nvlist.
This makes the code cleaner and improves internal error handling, and
paves the way for future work.

The API (wire protocol) is unchanged.
arter97 pushed a commit to arter97/zfs that referenced this issue Nov 23, 2023
NAS-124771 / 23.10.1 / Add all read-only compatible zpool features to grub2 compatibility
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant