Debian中国 为您找到相关结果 5

Linux内存buffer和cache的区别

被分配的内存。 Shared:0kb。,一般系统不会用到。 Buffers:124212KB。系统分配但未被使用的buffers 数量。 Cached:413000KB。系统分配但未被使用的cache 数量。 -/+ buffers/cache 行(第二行)数据说明: Used:471772kb,实际使用的buffers 与cache 总量,也是实际使用的内存总量。 Free: 563336kb, 未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。 根据以上分析,可以得出一下结论: 1. 实际可用内存大小: Free(-/+ buffers/cache行)= Free(Mem)+buffers(Mem)+Cached(Mem); 563336...阅读全文

Golang 中的 channel 通道详解

channel通道golang的并发模型是序列通信处理CSP(communicating sequential process)——使用通信来 ,避免goroutine因竞争频繁加锁产生的性能问题。基本数据结构golang中提供了一个特殊的类型channel实现goroutine之间的通信。channel类似于队列,先进先出。channel数据结构源码在src/runtime/chan.go下。chan 使用 hchan 表示,它的传参与赋值始终都是指针形式,每个 hchan 对象代表着一个 chan。hchan 中包含一个缓冲区 buf,它表示已经发送但是还未被接收的数据缓存。buf 的大小由创建 chan 时的参数来决定。qcount 表示当前缓冲区中有效数据的总量...阅读全文

nsenter 及 Linux命名空间 简介

进程有一个独立的挂载文件系统,始于Linux 2.4.19ipc:ipc命名空间,使进程有一个独立的ipc,包括消息队列,和信号量,始于Linux 2.6.19uts:uts命名空间,使进程有一个独立的hostname和domainname,始于Linux 2.6.19net:network命令空间,使进程有一个独立的网络栈,始于Linux 2.6.24pid:pid命名空间,使进程有一个独立的pid空间,始于Linux 2.6.24user:user命名空间,是进程有一个独立的user空间,始于Linux 2.6.23,结束于Linux 3.8cgroup:cgroup命名空间,使进程有一个独立的cgroup控制组,始于Linux 4.6 Linux的每个进程都具有命名空间,可以在...阅读全文

博文 2020-12-15 11:22:44 debian.cn

理解 Linux 的虚拟内存

通过使用虚拟内存使用也很简单,系统只需要将各个进程的虚拟内存地址指向系统分配的地址即可。 SWAP 虚拟内存可以让帮进程”扩充”内存。 我们前文提到了虚拟内存通过缺页中断为进程分配物理内存,内存总是有限的,如果所有的物理内存都被占用了怎么办呢? Linux 提出 SWAP 的概念,Linux 中可以使用 SWAP 分区,在分配物理内存,但可用内存不足时,将暂时不用的内存数据先放到磁盘上,让有需要的进程先使用,等进程再需要使用这些数据时,再将这些数据加载到内存中,通过这种”交换”技术,Linux 可以让进程使用更多的内存。 常见问题 在了解虚拟内存时,我也有过很多的问题。 32位和64位 最常见的就是 32位和64位的问题了。 CPU 通过物理总线访问内存,那么访问地址的范围就...阅读全文

博文 2018-11-25 11:03:49 debian.cn

linux - Go语言中文网

。 shared:进程间(一般不会用,可以忽略)。 buffers:内存中写完的东西缓存起来,这样快速响应请求,后面数据再定期刷到磁盘上。 cached:内存中读完缓存起来内容占的大小(这部分是为了下次查询时快速返回)。 -/+ buffers/cache看作两部分: -buffers/cache:正在使用的内存大小(注意不是used部分,因为buffers和cached并不是正在使用的,组织和人民需要是它们是可以释放的),其值=used-buffers-cached。 +buffers/cache:可用的内存大小(同理也不是free表示的部分),其值=free+buffers+cached。 Swap:硬盘上交换分区的使用大小。设计的目的就是当上面提到的+buffers/cache表示的可用内存...阅读全文

博文 2021-01-26 18:17:30 Golang中文社区