19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 /*
27 * Copyright (c) 2012 by Delphix. All rights reserved.
28 */
29
30 #include <sys/zfs_context.h>
31 #include <sys/vdev_impl.h>
32 #include <sys/spa_impl.h>
33 #include <sys/zio.h>
34 #include <sys/avl.h>
35
36 /*
37 * These tunables are for performance analysis.
38 */
39 /*
40 * zfs_vdev_max_pending is the maximum number of i/os concurrently
41 * pending to each device. zfs_vdev_min_pending is the initial number
42 * of i/os pending to each device (before it starts ramping up to
43 * max_pending).
44 */
45 int zfs_vdev_max_pending = 10;
46 int zfs_vdev_min_pending = 4;
47
48 /*
49 * The deadlines are grouped into buckets based on zfs_vdev_time_shift:
50 * deadline = pri + gethrtime() >> time_shift)
51 */
52 int zfs_vdev_time_shift = 29; /* each bucket is 0.537 seconds */
53
54 /* exponential I/O issue ramp-up rate */
55 int zfs_vdev_ramp_rate = 2;
56
57 /*
58 * To reduce IOPs, we aggregate small adjacent I/Os into one large I/O.
59 * For read I/Os, we also aggregate across small adjacency gaps; for writes
60 * we include spans of optional I/Os to aid aggregation at the disk even when
61 * they aren't able to help us aggregate at this level.
62 */
63 int zfs_vdev_aggregation_limit = SPA_MAXBLOCKSIZE;
64 int zfs_vdev_read_gap_limit = 32 << 10;
65 int zfs_vdev_write_gap_limit = 4 << 10;
|
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 /*
27 * Copyright (c) 2012 by Delphix. All rights reserved.
28 */
29
30 #include <sys/zfs_context.h>
31 #include <sys/vdev_impl.h>
32 #include <sys/spa_impl.h>
33 #include <sys/zio.h>
34 #include <sys/avl.h>
35
36 /*
37 * These tunables are for performance analysis.
38 */
39
40 /* The maximum number of I/Os concurrently pending to each device. */
41 int zfs_vdev_max_pending = 10;
42
43 /*
44 * The initial number of I/Os pending to each device, before it starts ramping
45 * up to zfs_vdev_max_pending.
46 */
47 int zfs_vdev_min_pending = 4;
48
49 /*
50 * The deadlines are grouped into buckets based on zfs_vdev_time_shift:
51 * deadline = pri + gethrtime() >> time_shift)
52 */
53 int zfs_vdev_time_shift = 29; /* each bucket is 0.537 seconds */
54
55 /* exponential I/O issue ramp-up rate */
56 int zfs_vdev_ramp_rate = 2;
57
58 /*
59 * To reduce IOPs, we aggregate small adjacent I/Os into one large I/O.
60 * For read I/Os, we also aggregate across small adjacency gaps; for writes
61 * we include spans of optional I/Os to aid aggregation at the disk even when
62 * they aren't able to help us aggregate at this level.
63 */
64 int zfs_vdev_aggregation_limit = SPA_MAXBLOCKSIZE;
65 int zfs_vdev_read_gap_limit = 32 << 10;
66 int zfs_vdev_write_gap_limit = 4 << 10;
|