You are not logged in.
Hi,
The default max_block_size on my machine is 512KB and this is what is expected for a machine having exactly 4GB of RAM based on my understanding of this piece of code:
kernel fs/nfsd/nfssvc.c
static int nfsd_get_default_max_blksize(void)
{
struct sysinfo i;
unsigned long long target;
unsigned long ret;
si_meminfo(&i);
target = (i.totalram - i.totalhigh) << PAGE_SHIFT;
/*
* Aim for 1/4096 of memory per thread This gives 1MB on 4Gig
* machines, but only uses 32K on 128M machines. Bottom out at
* 8K on 32M and smaller. Of course, this is only a default.
*/
target >>= 12;
ret = NFSSVC_MAXBLKSIZE;
while (ret > target && ret >= 8*1024*2)
ret /= 2;
return ret;
}
I came up with one of my first systemd service file so I just wanted to get some feedback to be sure that I'm approaching my problem the right way.
/etc/systemd/system/multi-user.target.wants/nfs-server-config.service
[Unit]
Description=NFS server config
Requires= proc-fs-nfsd.mount
After= proc-fs-nfsd.mount
Before= nfs-server.service
[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/bin/bash -c '/usr/bin/echo 1048576 > /proc/fs/nfsd/max_block_size'
thank you,
Last edited by lano1106 (2015-10-15 19:11:07)
Offline
I think what you're ultimately trying to do with the service should be done with tmpfiles. See tmpfiles.d(5)
Granted it wouldn't be tied to nfs-server.service in any way, but there's really no harm in that.
But whether the Constitution really be one thing, or another, this much is certain - that it has either authorized such a government as we have had, or has been powerless to prevent it. In either case, it is unfit to exist.
-Lysander Spooner
Offline
alphaminer, I have read about tmpfiles during my reasearch but the timing is crucial.
It need to be done after proc-fs-nfsd.mount is mounted and before rpc.nfsd is launched. Only during this window, you can modify the nfsd parameters. Is this something that can be guaranteed with tmpfiles?
Offline
Sorry, I didn't realize the necessity. Tmpfiles can't do that AFAIK.
One issue with your service file then: you should put it in /etc/systemd/system. The subfolders there are for symlinks to enabled services. It also seems there should be a better way than calling " bash -c 'echo ...' ", but I don't have any idea what that would be.
Last edited by alphaniner (2015-10-15 20:35:45)
But whether the Constitution really be one thing, or another, this much is certain - that it has either authorized such a government as we have had, or has been powerless to prevent it. In either case, it is unfit to exist.
-Lysander Spooner
Offline