InfraPub 为您找到相关结果 6

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 表示当前缓冲区中有效数据的总量...阅读全文

influxdb内存消耗分析及性能优化【探索篇】

Size (KiB)The amount of shared memory available to a task, not all of which is typically resident. It simply reflects memory that could be potentially shared with other processes.的大小程序的数据量,并不是全部驻留在内存空间,通常反映了与其他程序潜在共用的内存。那为什么influxd会有那么高的?通过linux进程smaps分析当前实际占用内存的大小。注: smaps中有些文件的引用仅占用虚拟内存,而不占用物理内存#influxdb当前程序运行pid为: 9571 #1.计算influxdb数据文件...阅读全文

博文 2021-10-27 16:06:30 知乎

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

字节跳动开源微服务中间件 CloudWeGo - OSCHINA

CloudWeGo 走向完善: 继续开源其他内部项目。开源更多字节跳动常用 Golang 项目,如 HTTP 框架 Hertz、基于的 IPC 通信库 ShmIPC 等,为开发者提供更多场景的微服务需求支持。 逐步开源经验证的、稳定的特性。CloudWeGo 的主要项目均为字节内部微服务提供支持,许多新特性仍在内部验证,相对成熟后会逐步开源,如对 ShmIPC 的集成、无序列化、无生成代码的支持等。 结合内外部用户需求,持续迭代。项目开源后会根据开发者需求开展迭代。例如近一个月来,团队收到了来自开发者的大量关于 Protobuf 的诉求,为了提供良好的支持,他们已经在筹备开展 Kitex 对 Protobuf 支持的性能优化。...阅读全文

博文 2021-09-09 13:56:42 中文开源技术交流社区