Will, I have a server were we can run some tests, let me know if you're
interested.



On Feb 23, 2017 2:49 PM, "Will Beazley" <[email protected]> wrote:

> Humberto,
>
> I.
> I have not yet tested it.
>
> It is on shared system and since it seems I must reboot to reload the
> '/etc/system' I should wait until a reboot window (and of course proceed
> with due care when messing about with Kernel Tunables and their ilk).
>
> I instead went through the relevant sections of SI, SP&T, and SP and then
> searched the Intertubes high and low.
>
> Here is a good one: http://dtrace.org/blogs/ahl/2014/08/31/openzfs-tuning/
> (nice links)
>
> What I had trouble working out specifically is how hidden/extant those
> variables are in SmartOS/Solaris docs(and systems) but figure greatly in
> relevant (antiquated) OpenSol pages & FreeBSD & Linux & OpenZFS.
> What I mean typing 'sysdef' doesn't give all the possible tunables, nor
> does the 'zfs get all' command show them.
>
> From SP table 8-12 defines zfs_txg_timeout thus: "time-out for TXGs
> (seconds): sets the lowest rate they can occur", and later refers one to
> the "ZFS Evil Tuning Guide".
>
> From http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/
> common/fs/zfs/dsl_pool.c   we find the following:
>
> The tunable * zfs_dirty_data_max determines the dirty space limit.
> .....The zfs_dirty_data_sync tunable dictates the threshold at which we 
> ensure that there is a txg syncin
> .....
> /*
> * zfs_dirty_data_max will be set to zfs_dirty_data_max_percent% of all memory,
> * capped at zfs_dirty_data_max_max.  It can also be overridden in /etc/system.
> */
> .....
> uint64_t zfs_dirty_data_max;
> uint64_t zfs_dirty_data_max_max = 4ULL * 1024 * 1024 * 1024;
> .....
> uint64_t zfs_dirty_data_sync = 64 * 1024 * 1024;
>
>
> II.
> The other consideration is that I am ultimately looking for speed ups
> on/with/from the ramdisk not to slow down the HDD+SSD zpool.
>
> What I think is going on so far from what I have read is that the HDD+SSD
> is so quick because it hasn't written really anything to disk yet, waiting
> for a timeout to be reached or a threshold of dirty data to be crossed.
>
> It could be that the ramdisk doesn't participate in those performance
> enhancing schemes but still being brought online by ZFS has its overheads;
> thus it gets all slowdowns but none of the compensating speed-ups.
>
> I am not sure if I am going to abandon this path and just be happy with
> the overall ZFS speed-ups.
>
> If anyone has any insights to share I am a willing ear.
>
> Thank You,
> Will
>
>
> On 2/23/17 12:47, Humberto Ramirez wrote:
>
> Did you re-run the dd tests after tweaking those parameters?
>
>
>
> On Feb 22, 2017 11:52 AM, "Will Beazley" <[email protected]>
> wrote:
>
> Mille Grazie!
>
>
> On 2/21/17 23:12, Artem Penner wrote:
>
> Read about this kernel parameters
> zfs:zfs_dirty_data_max
> zfs:zfs_txg_timeout
> zfs:zfs_dirty_data_sync
>
> It's limut your i/o.
>
> Example of /etc/config
> set ibft_noprobe=1
> set noexec_user_stack=1
> set noexec_user_stack_log=1
> set idle_cpu_no_deep_c=1
> set idle_cpu_prefer_mwait = 0
> set hires_tick=1
> set ip:ip_squeue_fanout=1
> set pcplusmp:apic_panic_on_nmi=1
> set apix:apic_panic_on_nmi=1
> set dump_plat_mincpu=0
> set dump_bzip2_level=1
> set dump_metrics_on=1
> set sata:sata_auto_online=1
> set sd:sd_max_throttle = 128
> set sd:sd_io_time=10
> set rlim_fd_max = 131072
> set rlim_fd_cur = 65536
> set ndd:tcp_wscale_always = 1
> set ndd:tstamp_if_wscale = 1
> set ndd:tcp_max_buf = 166777216
> set nfs:nfs_allow_preepoch_time = 1
> set nfs:nfs3_max_threads = 256
> set nfs:nfs4_max_threads = 256
> set nfs:nfs3_nra = 32
> set nfs:nfs4_nra = 32
> set nfs:nfs3_bsize = 1048576
> set nfs:nfs4_bsize = 1048576
> set nfs3:max_transfer_size = 1048576
> set nfs4:max_transfer_size = 1048576
> set nfs:nfs4_async_clusters = 16
> set rpcmod:svc_default_stksize=0x6000
> set rpcmod:cotsmaxdupreqs = 4096
> set rpcmod:maxdupreqs = 4096
> set rpcmod:clnt_max_conns = 8
> set maxphys=1048576
> set zfs:zfs_dirty_data_max = 0x600000000
> set zfs:zfs_txg_timeout = 0xc
> set zfs:zfs_dirty_data_sync = 0x400000000
> set zfs:zfs_arc_max = 0x6400000000
> set zfs:zfs_arc_shrink_shift=12
> set zfs:l2arc_write_max = 0x6400000
> set zfs:l2arc_write_boost = 0xC800000
> set zfs:l2arc_headroom = 12
> set zfs:l2arc_norw=0
>
>
> 22 февр. 2017 г. 7:28 пользователь "Will Beazley" <
> [email protected]> написал:
>
>> Christopher, et al.,
>> 
>> I am trying to get my head around why the performance of ramdisk is so
>> much poorer than that of HDD-pool+SSD-slog.
>> 
>> /usbkey/test_dir]#  time dd if=/dev/zero of=/tmpfs/testfile bs=64k
>> count=32768;time dd if=/dev/zero of=/usbkey/test_dir/testfile bs=64k
>> count=32768
>> 32768+0 records in
>> 32768+0 records out
>> 2147483648 <%28214%29%20748-3648> bytes transferred in 2.279053 secs
>> (942270169 bytes/sec)
>> 
>> real    0m2.312s
>> user    0m0.021s
>> sys     0m1.062s
>> 32768+0 records in
>> 32768+0 records out
>> 2147483648 <%28214%29%20748-3648> bytes transferred in 0.743729 secs
>> (2887453957 bytes/sec)
>> 
>> real    0m0.760s
>> user    0m0.016s
>> sys     0m0.652s
>> 
>> I created the ramdisk thus:
>> ramdiskadm -a rd1 3072m
>> ...
>> zfs create -o  mountpoint=/tmpfs -o sync=disabled  ramdsk1/rd1
>> 
>> I've run it many times and although the results vary yet the tale is
>> always the same.
>> 
>> Thank You,
>> Will
>> 
>
>
>
> *smartos-discuss* | Archives
> <https://www.listbox.com/member/archive/184463/=now>
> <https://www.listbox.com/member/archive/rss/184463/27825507-82e246d1> |
> Modify
> <https://www.listbox.com/member/?&;>
> Your Subscription <http://www.listbox.com>
>



-------------------------------------------
smartos-discuss
Archives: https://www.listbox.com/member/archive/184463/=now
RSS Feed: https://www.listbox.com/member/archive/rss/184463/25769125-55cfbc00
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=25769125&id_secret=25769125-7688e9fb
Powered by Listbox: http://www.listbox.com

Reply via email to