Basically what MIfe said; these options are context sensitive. The important part are in the manpages:
async This option allows the NFS server to violate the NFS protocol and reply to
requests before any changes made by that request have been committed to
stable storage (e.g. disc drive).
and on the (Mac) client:
async Assume that unstable write requests have actually been committed to stable
storage on the server, and thus will not require resending in the event
that the server crashes.
Note: on a Mac,
mount_nfs(8) states that the
async option will only be honored if the
nfs.client.allow_async option in
nfs.conf(5) is also enabled (can also be set via
So, you can request
async on the client and write requests will just assume they've reached ther server. Since you specified
sync on the server, it will fulfill requests from the client when the data has been actually written to disk. (Of course, your local filesystems on the server can also be mounted with "sync", though "async" seems to be the default)
A word on your mount options on the client:
* rsize & wsize are set to 32768 by default for TCP mounts.
* proto=tcp is the default, will fallback to udp if not supported by the server
* vers=3 is the default, will fallback to 2 if not supported by the server