背景
大佬们,我在学习kafka顺序读写时候,看到,就是page cache 其实是好性能的一重要点,而且线上配置,kafka自己的jvm 一般不需要太大内存6g左右就够啦,其他的留给 os cache,然后再就是利用零拷贝,提升了,性能。
疑问
关于零拷贝,什么用户态,内核态的,不是很明白,我这么理解
没有零拷贝的时候
内核态读取切换到用户态,简单理解
用户要读某个文件,让操作系统读,读到内存了,然后交给用户程序
用户程序然后再去用自己的变量去接读到内存的这个值,这就是所谓的上下文切换,
发送数据的时候,在吧用户的数据copy到socket的缓存里去,然后发到网卡上
有了零拷贝
os读取数据到内存之后,直接发到socket,然后网卡
就避免数据来回复制
不晓得上面这种简单粗暴的理解对否?
大佬们,快来敲打我