Sponsored Content
Top Forums UNIX for Advanced & Expert Users Does sync(2) block writes until completed? Post 302239897 by mschwage on Wednesday 24th of September 2008 04:28:10 PM
Old 09-24-2008
Not sync, really- but pdflush

I should mention that I'm not really concerned so much about sync but rather on pdflush itself. ...The mechanisms they use may be different. Anyway, I notice that if I modify the pdflush behavior with these kernel parameters:
Code:
vm.dirty_writeback_centisecs=100
vm.dirty_expire_centisecs=100

...it appears to affect my dd writes negatively; that is, if I loop the dd and run it over and over again, the time for dd to complete jumps on an erratic basis.

Here's what I'm executing:
Code:
while true; do
    echo -n ">>> New File >>>"; date +%r
    /usr/bin/time -f "%E" /tmp/doit
done

and /tmp/doit contains:
dd if=/dev/zero of=/var/tmp/bigfile$i bs=1024 count=40000 oflag=nonblock 2>/dev/null

Then in another window, I am modifying sysctl parameters while the while loop is running. First, the default settings:
Code:
sysctl -w vm.dirty_writeback_centisecs=500 ; sysctl -w vm.dirty_expire_centisecs=3000
sysctl -w vm.dirty_writeback_centisecs=100 ; sysctl -w vm.dirty_expire_centisecs=100
...observe times from the while loop.  These should be more "choppy"

The fact that the dd's more frequently take longer when the centisecs parameter is shortened lead me to believe that my app is blocking when it bumps into the disk flushing. The machine is otherwise quiescent, and the size of the write (40 Meg) should not be enough to trigger pdflush. It should happen every second, based on the sysctl settings.

Note that dd is not doing direct i/o or synchronous i/o. If I explicitly set those flags, it slows the write enormously. Note too that it doesn't matter if I use the "nonblock" flag or not... i/o behavior is the same.
-Mike
P.S. We don't have a syncer daemon. Also, while running my tests above, it appears to me that the effect of sync is nearly instantaneous...

Last edited by mschwage; 09-24-2008 at 05:42 PM..
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sh script that reads/writes based upon contents of a file

Hi everyone, Ive got a quick question about the feasibility and any suggestions for a shell script. I can use sh or ksh, doesnt matter. Basically, Ive got an output file from a db2 command that looks like so: SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL KEYS F4 F5 ... (3 Replies)
Discussion started by: rdudejr
3 Replies

2. Solaris

Sync to Green vs. Separate Sync

Hi all....I have a Sun Ultra2 that I want to use with my PC monitor. I have purchased an adapter that does not work and I was told I need to change my video card setting (if I can) to Separate Sync.....my Monitor product number ends in 1343......I am running SunOS 5.7 ......anyone have any ideas? ... (0 Replies)
Discussion started by: psantinello
0 Replies

3. UNIX for Dummies Questions & Answers

which process writes to file

Some process rewrites a file ( i'm hacked :) Can I somehow monitor which process does that? (2 Replies)
Discussion started by: hachik
2 Replies

4. Shell Programming and Scripting

Perl: FH and multiple writes

I found this logging subroutine on the net that I want to use but despite trying many things, I cannot figure out how to get the date in front of the logged text. Ideally what I'm looking for is a line that looks something like this: Wed Aug 20 18:17:29 PDT 2008 - my logging info here. my... (2 Replies)
Discussion started by: gctaylor
2 Replies

5. Solaris

Network writes contantly spiking in throughput

Hey guys First post... and im not exactly a solaris guru but here goes Ive setup a solaris 10 box with a raidz2 set of 6 disks... I have also setup Samba with open shares for some CIFs access... now my issue is that when i transfer large files to it the network performance contantly... (8 Replies)
Discussion started by: silicoon
8 Replies

6. Shell Programming and Scripting

Reading from a file a background program writes to

Hi! #!/usr/bin/env bash rm tmpcomm nc -v -u -l 444 | hexdump -b > tmpcomm while : do read l1 < tmpcomm read l2 < tmpcomm read l3 < tmpcomm read l4 < tmpcomm # do something doneI start netcat in the background and listen for an incoming conncetion. All incoming... (1 Reply)
Discussion started by: torax123
1 Replies

7. Shell Programming and Scripting

Help with script that reads and writes java console Minecraft

Hi I am looking for an easy way to lock game mode (0) for everyone included op on a Minecraft server. It can be a script that every time a player changes game to 1 the script changes back to 0. What the player writes is visible in the java console. I am not good at script programming and my... (0 Replies)
Discussion started by: MyMorris
0 Replies

8. Solaris

OpenBSM not catching all file writes

I have a custom auditing class configured for these events but it doesn't seem to be catching it when I do a "echo hey > test.txt" Any ideas on why that is? ---------- Post updated at 06:04 PM ---------- Previous update was at 05:47 PM ---------- Scratch this topic, it looks like it's because... (0 Replies)
Discussion started by: thmnetwork
0 Replies
tz(4)							     Kernel Interfaces Manual							     tz(4)

Name
       tz - SCSI magnetic tape interface

Syntax
       VAX NCR 5380:
	 adapter      uba0    at nexus?
	 controller   scsi0   at uba0	 csr 0x200c0080  vector szintr
	 tape	      tz0     at scsi0	 drive 0

       VAX DEC SII:
	 adapter      ibus0   at nexus?
	 controller   sii0    at ibus?	 vector sii_intr
	 tape	      tz0     at sii0	 drive 0

       RISC DEC SII:
	 adapter      ibus0   at nexus?
	 controller   sii0    at ibus?	 vector sii_intr
	 tape	      tz0     at sii0	 drive 0

       RISC DEC KZQ:
	 adapter      uba0    at nexus?
	 controller   kzq0    at ibus? csr 0761300vector sii_intr
	 tape	      tz0     at kzq0	 drive 0

       RISC NCR ASC:
	 adapter      ibus0   at nexus?
	 controller   asc0    at ibus?	 vector ascintr
	 tape	      tz0     at asc0	 drive 0

Description
       The SCSI tape driver provides a standard tape drive interface as described in This is a driver for any Digital SCSI tape device.

       For  the  TZK10	QIC  format tape drive, the densities supported are QIC-24 (read only) block size of 512 byte blocks, QIC-120, and QIC-150
       read/write block size of 512 byte blocks, and QIC-320 read/write block size of 1024 byte blocks.  With QIC format style tapes all reads and
       writes  must  be  in  multiple  of the block size.  This is a requirement of fixed block tape drives because record boundaries are not pre-
       served.	The QIC densities are selected using the following special device names:

	 QIC-24 Fixed block size.
	 QIC-120 Fixed block size.
	 QIC-150 Fixed block size.
	 QIC-320 Fixed block size.

       With all fixed block tape devices a of a file to the tape must be padded out.  An example of this is a of which has a size of approximately
       3800 bytes.
       dd if=/etc/gettytab of=/dev/rmt0h bs=10k conv=sync
	 or
       dd if=/etc/gettytab of=/dev/rmt0l bs=512 conv=sync
       The option of pads the output to block size.

       This  driver  also  supports  n-buffered  reads	and  writes  to the raw tape interface (used with streaming tape drives).  See for further
       details.

Tape Support
       TZ30, TZK50, TLZ04, TSZ05, TKZ08, TZK10

Diagnostics
       All diagnostic messages are sent to the error logger subsystem.

Files
See Also
       mtio(4), nbuf(4), SCSI(4), MAKEDEV(8), uerf(8), tapex(8)
       Guide to the Error Logger

																	     tz(4)
All times are GMT -4. The time now is 09:41 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy