I'm a 4 year Sage Windows user, but new to Sage on Linux. I'm working on migrating to a Sage Linux system with storage on a separate NFS server. Today I noticed something while watching the disk I/O on my NFS server, and I don't know if it's by design or if it's a problem.
If I start recording a show, I see the NFS client (Sage box) caching the writes and then committing them (using NFS COMMIT) as a batch to the NFS server every 10-20 seconds at 500+Kb/IO. *But*, if I start watching the show in real-time while it's recording, Sage starts issuing what seems like a commit after every 20 to 40K. This is resulting in very busy disks on my NFS server, 20-30 IOPS for a single SD show. I'm using ZFS and it obeys the commits by forcing a cache flush to physical storage, so this is magnifying the problem but I believe it's doing the correct thing.
The only reason I can come up with is maybe it's being done on purpose to guarantee that the client watching the show (reading from disk) sees the most recent data written to disk by the recorder process. Although when watching in real-time, the reads seem to be coming from the NFS client's cache anyway as I don't see any reads from the NFS server.
Here's an iostat output showing the NFS when I'm only recording a show-- see "wkB_svr/s" for the data written to the NFS server per second. Note that it only writes to the NFS server periodically.
Code:
Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s rops/s wops/s
192.168.224.1:/sagetv/linux 0.00 924.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 899.01 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 932.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 897.03 0.00 0.00 0.00 8603.90 11.88 11.88
192.168.224.1:/sagetv/linux 0.00 812.12 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 776.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 792.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 658.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 678.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 784.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 848.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 808.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 828.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 818.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 816.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 850.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 812.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 804.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 817.82 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 822.22 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 790.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 821.78 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 838.38 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 816.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 810.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 840.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 832.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 808.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 796.04 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 824.24 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 828.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 810.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 836.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 812.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 822.22 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 812.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 848.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 805.94 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 243.56 0.00 0.00 0.00 15350.50 33.66 17.82
192.168.224.1:/sagetv/linux 0.00 1381.82 0.00 0.00 0.00 12975.69 1.01 17.17
192.168.224.1:/sagetv/linux 0.00 839.60 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 776.00 0.00 0.00 0.00 0.00 0.00 0.00
192.168.224.1:/sagetv/linux 0.00 775.76 0.00 0.00 0.00 0.00 0.00 0.00
Now, if I'm watching the show while it's recording, you can see that it's writing to the NFS server constantly using lots of small I/Os:
Code:
Filesystem: rkB_nor/s wkB_nor/s rkB_dir/s wkB_dir/s rkB_svr/s wkB_svr/s rops/s wops/s
192.168.224.1:/sagetv/linux 896.00 920.00 0.00 0.00 0.00 978.81 38.00 38.00
192.168.224.1:/sagetv/linux 633.66 1235.64 0.00 0.00 0.00 1288.00 34.65 35.64
192.168.224.1:/sagetv/linux 775.76 1111.11 0.00 0.00 0.00 1162.56 34.34 34.34
192.168.224.1:/sagetv/linux 887.13 1000.00 0.00 0.00 0.00 1020.79 32.67 32.67
192.168.224.1:/sagetv/linux 775.76 987.88 0.00 0.00 0.00 1055.87 21.21 21.21
192.168.224.1:/sagetv/linux 512.00 688.00 0.00 0.00 0.00 727.00 33.00 32.00
192.168.224.1:/sagetv/linux 768.00 748.00 0.00 0.00 0.00 806.81 83.00 84.00
192.168.224.1:/sagetv/linux 760.40 748.51 0.00 0.00 0.00 783.17 32.67 31.68
192.168.224.1:/sagetv/linux 775.76 589.90 0.00 0.00 0.00 637.37 31.31 32.32
192.168.224.1:/sagetv/linux 896.00 692.00 0.00 0.00 0.00 709.50 17.00 16.00
192.168.224.1:/sagetv/linux 1140.59 681.19 0.00 0.00 0.00 735.52 34.65 35.64
192.168.224.1:/sagetv/linux 896.00 744.00 0.00 0.00 0.00 804.81 38.00 38.00
192.168.224.1:/sagetv/linux 640.00 728.00 0.00 0.00 0.00 780.88 36.00 36.00
192.168.224.1:/sagetv/linux 768.00 732.00 0.00 0.00 0.00 777.00 32.00 32.00
192.168.224.1:/sagetv/linux 1034.34 739.39 0.00 0.00 0.00 776.96 26.26 26.26
192.168.224.1:/sagetv/linux 760.40 718.81 0.00 0.00 0.00 755.63 25.74 25.74
192.168.224.1:/sagetv/linux 775.76 789.90 0.00 0.00 0.00 841.35 34.34 34.34
192.168.224.1:/sagetv/linux 752.94 801.96 0.00 0.00 0.00 848.04 31.37 31.37
Hoping someone may have an explanation...is anyone else seeing this? Thanks!