Golang memory

Share on:

Insert Lead paragraph here.

  • go_memstats_heap_idle_bytes : 申请但是未分配的堆内存或者回收了的堆内存(空闲)字节数,runtime持有,可提供堆内存的快速分配
  • go_memstats_heap_inuse_bytes:正在使用的堆内存字节数

以上两者之和,大致相当于服务占用内存量

runtime中和内存使用情况相关的结构体为runtime.MemStats,这个结构定义了golang运行过程中所有内存相关的信息

  • go_gc_duration_seconds:持续时间秒
  • go_gc_duration_seconds_sum:gc-持续时间-秒数-总和
  • go_memstats_alloc_bytes:Go内存统计分配字节
  • go_memstats_alloc_bytes_total:Go内存统计分配字节总数
  • go_memstats_buck_hash_sys_bytes:用于剖析桶散列表的堆空间字节
  • go_memstats_frees_total:内存释放统计
  • go_memstats_gc_cpu_fraction:垃圾回收占用服务CPU工作的时间总和
  • go_memstats_gc_sys_bytes:圾回收标记元信息使用的内存字节
  • go_memstats_heap_alloc_bytes:服务分配的堆内存字节数
  • go_memstats_heap_idle_bytes:申请但是未分配的堆内存或者回收了的堆内存(空闲)字节数
  • go_memstats_heap_inuse_bytes:正在使用的堆内存字节数
  • go_memstats_heap_objects:堆内存块申请的量
  • go_memstats_heap_released_bytes:返回给OS的堆内存
  • go_memstats_heap_sys_bytes:系统分配的作为运行栈的内存
  • go_memstats_last_gc_time_seconds:垃圾回收器最后一次执行时间
  • go_memstats_lookups_total:被runtime监视的指针数
  • go_memstats_mallocs_total:服务malloc的次数
  • go_memstats_mcache_inuse_bytes:mcache结构体申请的字节数(不会被视为垃圾回收)
  • go_memstats_mcache_sys_bytes:操作系统申请的堆空间用于mcache的字节数
  • go_memstats_mspan_inuse_bytes:用于测试用的结构体使用的字节数
  • go_memstats_mspan_sys_bytes:系统为测试用的结构体分配的字节数
  • go_memstats_next_gc_bytes:垃圾回收器检视的内存大小
  • go_memstats_other_sys_bytes:golang系统架构占用的额外空间
  • go_memstats_stack_inuse_bytes:正在使用的栈字节数
  • go_memstats_stack_sys_bytes:系统分配的作为运行栈的内存
  • go_memstats_sys_bytes:服务现在系统使用的内存
  • go_threads:线程