priocscan vs fcfs

2015-12-02 Thread Emile `iMil' Heitor


Hi,

I've never been really happy with my NetBSD RAIDframe NAS, never really got the
speed I was supposed to even with the right alignment / raid layout etc.

Today I dug into `dkctl(8)' while searching if cache was enabled for read and
write, and I came across the "strategy" command.
Long story short, changing from priocscan to fcfs strategy multiplied my NAS's
write speed by 6! I changed the strategy for all disk members:

# dkctl wd0 strategy fcfs
# dkctl wd1 strategy fcfs
# dkctl wd2 strategy fcfs

and also for the RAIDframe:

# dkctl raid0 strategy fcfs
/dev/rraid0d: priocscan -> fcfs

as changing it only for the disk members was apparently counter-productive.
And there we go, from a 40/50MB/s write average to a stunning 200 to 300MB/s,
which is more like what the disks can theroically do.

Could anyone with some background on these strategies explain what's behind the
curtain? I couldn't really find precise documentation on this matter...

Thanks,


Emile `iMil' Heitor * 
  _
| http://imil.net| ASCII ribbon campaign ( )
| http://www.NetBSD.org  |  - against HTML email  X
| http://gcu.info|  & vCards / \



Re: priocscan vs fcfs

2015-12-02 Thread Michael van Elst
i...@home.imil.net ("Emile `iMil' Heitor") writes:

>as changing it only for the disk members was apparently counter-productive.
>And there we go, from a 40/50MB/s write average to a stunning 200 to 300MB/s,
>which is more like what the disks can theroically do.

>Could anyone with some background on these strategies explain what's behind the
>curtain? I couldn't really find precise documentation on this matter...


disksort
- execute requests in order of increasing block numbers, then
  continue with the lowest block number. I.e. do a one-way
  scan over the disk.

fcfs
- execute requests in the order they were issued.

priocscan
- The filesystem tags each I/O request (buffer) with a priority.
  Priorities are mapped to multiple queues, the highest priority
  queue is executed first, each queue is executed in block number
  order up to a fixed number of requests (burst) to prevent the
  lower priority queues from starving.
  

"block number order" can be just "cylinder number order" depending
on the disk driver.

buffer priority is time-noncritical (low), time-limited (medium)
and time-critical (high).

Usually synchronous operations and the journal are time-critical,
everything else is time-limited and time-noncritical isn't used.
Accessing the raw device is also time-critical.


So, disksort is the traditional method for filesystems on dumb
disk devices. fcfs can be good for smart disks with caches
and their own queuing and for streaming a raw disk. Priocscan
tries to optimize for concurrent filesystem accesses better
than disksort.

fcfs is also the "neutral" queue for drivers stacking on top of
each other. The queue sorting should really only be done
at one level.

But raidframe is more complicated because it does its own queuing
and sorting outside of this schema, in particular when it has to
read-modify-write stripe sets for small I/O.

That's probably why setting the queues all to fcfs is the best
for you.

-- 
-- 
Michael van Elst
Internet: mlel...@serpens.de
"A potential Snark may lurk in every tree."


Re: priocscan vs fcfs

2015-12-02 Thread Emile `iMil' Heitor

On Wed, 2 Dec 2015, Michael van Elst wrote:


fcfs is also the "neutral" queue for drivers stacking on top of
each other. The queue sorting should really only be done
at one level.

But raidframe is more complicated because it does its own queuing
and sorting outside of this schema, in particular when it has to
read-modify-write stripe sets for small I/O.

That's probably why setting the queues all to fcfs is the best
for you.


Thanks a lot for this clear analysis Michael.

I can now confirm the results I've witnessed earlier, I've ran a couple of
benchmarks, including bonnie++ and iozone, the latter shows a ratio of x5 in
favor of the fsfc strategy for every type of operation. For those interested,
iozone spreadsheet output is available here (OOo / LibreOffice):

https://home.imil.net/tmp/coruscant-iozone-priocscan.ods
https://home.imil.net/tmp/coruscant-iozone-fsfc.ods

For each subset, first column is the amount of data written (from 64K to 4M)
and first row is the block size.


Emile `iMil' Heitor * 
  _
| http://imil.net| ASCII ribbon campaign ( )
| http://www.NetBSD.org  |  - against HTML email  X
| http://gcu.info|  & vCards / \



Re: Invalid signature in GRUB

2015-12-02 Thread Hilix

Hi, Mitt!

I don't get an error like "menuentry: command not found".
My update-grub finishes with "erledigt", which means "done", and all the 
OS's were found.



I use this 40_custom file:
-
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
#
# Alpeis Linux
menuentry "AlpEis Linux on 'sdd3'" {
insmod ext2
insmod part_msdos
insmod gzio
set root=(hd3,msdos1)
linux /vmlinuz-grsec root=/dev/sdd3 
modules=sd-mod,usb-storage,ext4 quiet

initrd /initramfs-grsec
}
#
# NetBSD 7.0 on /dev/sdb8 (wd1a)
menuentry "NetBSD 7.0 on /dev/sdb8 (wd1a)" {
insmod ufs2
set root=(hd1,msdos8)
knetbsd /netbsd --root=wd1a
}
-

Did you delete the first 2 lines.

My /boot/grub/grub.cfg contains both of the menuentries (within the ### 
BEGIN|END /etc/grub.d/40_custom ### block)
and the "Alpeis Linux" and "NetBSD 7.0..." options appear in the grub 
menu at boot


I use grub2 2.02 beta2-22 on debian 8.2, kernel 3.16.0-4.586

Regards / Hilmar.


Maybe you or someone else can tell me the reason for this
"cat << EOF ... EOF" frame around the menuentry block.

‎When I was trying to run "update-grub" without this frame
it told me "menuetry: command not found" and
"insmod: command not found"‎.

Mitt



Re: Dbus issues

2015-12-02 Thread Mitt Green
I've found a dbus script in LFS book, trimmed it a bit,
now I am able to startx. But trying to shutdown or reboot
from GNOME only freezes X, logout option is fine.
There is no .serverauth‎,
"waiting for X server to shut down gnome-settings-daemon:
Fatal IO error 35 (resource temporarily unavailable)
on X server :0", gnome-settings-daemon
is installed, I believe I am still missing something
since I was installing GNOME as package by package.

When logged in as a regular user, there is no restart/shutdown option at all.

Mitt


Dbus issues

2015-12-02 Thread Mitt Green
Good day everyone,

I'm troubling starting X on a newly installed system.

Errors are:
 - Could not connect to ConsoleKit, no /var/run/dbus/system_bus_socket
file;
 - dbus_g_connection_get_connection: assertion "gconnection" failed;‎
 - arguments to dbus_connection_send_with_reply_and_block()
were incorrect, assertion "connection! = NULL"
failed in file dbus-connection.o line 3543.

I guess it is the same error.

I searched but found such errors mostly on Arch Linux,
and one in OpenBSD on daemonforums. From there
I put some stuff inside .dbus/session.conf‎ (allow own, allow
user) and a long dbus command inside .xinitrc (regarding dbus-launch),
but that doesn't help.

I don't have dbus in rc.d. Reinstalling dbus also doesn't help.
System - NetBSD 7.0. I am trying to get GNOME2 working.

Thanks,

Mitt


pkgsrc asterisk 1.8 problem

2015-12-02 Thread Cristiano Bosenbecker Hellwig
pkg_create: can't stat
`/usr/pkgsrc/comms/asterisk18/work/.destdir/usr/pkg/lib/asterisk/modules/func_curl.so'
pkg_create: can't stat
`/usr/pkgsrc/comms/asterisk18/work/.destdir/usr/pkg/lib/asterisk/modules/res_config_curl.so'
pkg_create: can't stat
`/usr/pkgsrc/comms/asterisk18/work/.destdir/usr/pkg/lib/asterisk/modules/res_curl.so'


Some people can me help ?


Re: Invalid signature in GRUB

2015-12-02 Thread Hilix

Hi,


Thank you, now it boots.

:-)

Maybe you or someone else can tell me the reason for this
"cat << EOF ... EOF" frame around the menuentry block.

In my "40_custom" it works without it, as expected.

Regards. / Hilmar.



Here's what's inside my /etc/grub.d/40_custom now:
--
#!/bin/sh -e
cat << EOF
menuentry "NetBSD 7.0" {
insmod ufs2
set root=(hd0,msdos2)
knetbsd /netbsd --root=wd0a
}
EOF
--

Mitt