Documentation ¶
Index ¶
- Constants
- Variables
- func GetCoreFileSize() (string, error)
- func GetMaxMapCount() (int, error)
- func GetMaxOpenFiles() (int, error)
- func GetMaxProcessThreadCountByUser() (int, error)
- func GetOsBits() int
- func GetPidMax() (int, error)
- func GetThreadsMax() (int, error)
- func GetUlimitInfo() (string, error)
Constants ¶
const ( // PathSeparator 路径分隔符(string类型) /* e.g. "/": Mac、Linux "\": Windows */ PathSeparator = string(os.PathSeparator) // PathListSeparator 路径列表分隔符(string类型) /* e.g. ":": Mac、Linux ";": Windows */ PathListSeparator = string(os.PathListSeparator) )
Variables ¶
var ( // IsWindows 检查当前操作系统是否是windows IsWindows func() bool = system.IsWindows // IsLinux 检查当前操作系统是否是linux. IsLinux func() bool = system.IsLinux // IsMac 检查当前操作系统是否是macos. IsMac func() bool = system.IsMac )
var ARCH string = runtime.GOARCH
ARCH 处理器架构
var GetGoroutineCount func() int = runtime.NumGoroutine
GetGoroutineCount 当前进程中的协程数.
var OS string = runtime.GOOS
OS 操作系统
Functions ¶
func GetMaxMapCount ¶
GetMaxMapCount 获取: 一个进程可以拥有的最大内存映射区域数量(间接限制了线程数).
PS: @return 间接限制了线程数,因为每个线程都需要一些内存映射区域.
命令: cat /proc/sys/vm/max_map_count sysctl vm.max_map_count
func GetMaxOpenFiles ¶
GetMaxOpenFiles 获取: 同一时间最多可开启的文件数.
PS: (1) 当前仅支持Mac、Linux环境. (2) 为何使用 sh -c "ulimit -n" 而非 ulimit -n? https://www.thinbug.com/q/17483723
func GetMaxProcessThreadCountByUser ¶
GetMaxProcessThreadCountByUser 获取: 单个用户可以创建的进程数上限(线程也算)
PS: (1) ulimit -u命令: 限制单个用户可以创建的进程数. (2) ulimit -u命令也可以用来限制单个用户可以创建的线程数,因为: 在Linux中,线程本质上只是具有共享地址空间的进程。
func GetPidMax ¶
GetPidMax 获取: 系统的pid最大值(作为系统范围内 进程 和 线程 总数的限制).
PS: (1) 大多数Linux上的默认值: 32768
32位系统: 最大值为 32768 64位系统: 任何小于等于 2^22(PID_MAX_LIMIT,约 400 万)的值
命令: cat /proc/sys/kernel/pid_max sysctl kernel.pid_max
func GetThreadsMax ¶
GetThreadsMax 获取: 系统的最大线程数.
命令: cat /proc/sys/kernel/threads-max sysctl kernel.threads-max
Types ¶
This section is empty.