linux文件缓存配置(linux文件缓存)

linux下怎么设置udp接收缓存最大值?

TCP有一个传输效率的公式:

Delivery Rate = CWND / RTT

CWND

:拥塞窗口大小,以字节为单位。

* 在没有出现拥塞时,CWND = 对端通告window大小

* 出现拥塞时,CWND 受本端拥塞算法控制,原则上<=带宽最大值*RTT

RTT

:TCP报文一来一去的延迟,以秒为单位。

如果想

充分利用100M带宽,需要尽可能增加CWND大小,而在没有拥堵时,等于对端advertised window (对端缓存)的大小

,假定RTT时间是基本不变的。

为何TCP多线程可以充分利用带宽?

变相增加对端的缓存大小。

为何UDP可以充分利用带宽?

因为UDP没有拥塞机制,应用程序发送的速率 = 链路的最大带宽。

linux内存使用率多少正常?

正常,linux内核有自动缓存机制。硬盘文件的读写,等很多操作在内存中有缓存,定时同步到硬盘里。通常使用率都在90%徘徊。但缓存在内存需求增加时会被释放以提供内存。

linux下查看内存的命令?

top命令能显示系统内存。目前常用的Linux下查看内容的专用工具是free命令。下面是对内存查看free命令输出内容的解释:

total:总计物理内存的大小。

used:已使用多大。

free:可用有多少。

Shared:多个进程共享的内存总额。

Buffers/cached:磁盘缓存的大小。熟悉linux基础命令,可以看看《linux就该这么学》一书。

linux的corefile文件能删除吗?

Corefile文件可以删除,因为该文件是临时缓存文件。

升级了win10之后有个旧版系统缓存,23g,这个可以删除吗。有什么影响吗?

理论上说,只要二进制文件已经全在内存里了,删除是完全没问题的。

实际情况是:是否能删除取决于操作系统的行为,因为你的删除动作是要通过操作系统的来完成的,操作系统让你删,你才能删(比如Linux),否则就不能(比如Windows)。

Windows不能删的原因是:Windows把每一个可执行文件都映射成一段虚拟内存(类似pagefile),没执行到的部分可能并不实际在内存里存在,因此要对可执行文件加锁,否则,出了pagefault以后就找不到实际对应的文件了,因此Windows不让删除。

如果有能力控制内核里的那个锁,删掉一个打开的可执行文件完全没问题,很多工具(比如360)都能删。

注:Linux也有类似机制,但Linux文件系统跟cache管理基本上是分离的,Windows文件系统和cache管理绑的太紧,Windows文件系统和内核都没有提供一种机制能把打开(映射)的文件与cache管理剥离(清空SECTION_OBJECT_POINTERS的DataSectionObject、 ImageSectionObject两个指针)。

如果一个可执行文件没通过Windows文件系统驱动加载,那么就没有锁的问题,就可以删,比如Windows的内核镜像:NTOSKRNL.EXE,是通过bootloader之类的加载器加载的,虽然也实际在内存里,但可以删,删掉以后系统再启动就起不来了。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平