导读 | 有时候常常要和开发对程序,由于测试环境和生产环境多多少少还是有点出入,导致开发不清楚生产环境这边的具体情况,开发往往需要获取系统的各项指标来判断程序的具体问题,于是就有了以下这个小: |
#!/bin/bash #1.同一进程的线程共享内存空间 #2.进程在不同的内存空间中运行 echo "系统版本 `lsb_release -a` " #请根据发行版本来修改中的 echo "该主机物理CPU个数 `cat /proc/cpuinfo |grep "physical id"|awk '{print $4}'|sort |uniq|wc -l` " echo "该主机CPU内核个数 `cat /proc/cpuinfo |grep "cpu cores" |uniq |awk '{print $4}' ` " echo "该主机逻辑CPU个数 `cat /proc/cpuinfo |grep "processor"|wc -l` " yes_or_no(){ if [ `cat /proc/cpuinfo |grep "cpu cores" |uniq |awk '{print $4}'` -eq `cat /proc/cpuinfo |grep "siblings" |uniq|awk '{print $3}'` ];then echo "no" else echo "yes" fi } echo "该主机是否开启超线程" yes_or_no echo echo "系统最大进程数pid_max `cat /proc/sys/kernel/pid_max` " #系统中可以同时执行的最大进程数量,这些进程可以在不同内存空间中使用 echo "系统当前已经使用的进程数 `ps -ef|wc -l` " echo "系统最大线程数threads-max `cat /proc/sys/kernel/threads-max` " #统中能调用的线程总数的上限,由物理内存决定,是各个用户ulimit -u之和超过该上限会抛内存异常 echo "系统当前已经使用的线程数 `ps -eLf|wc -l` " echo "单个进程最多可以创建的线程数max_map_count `cat /proc/sys/vm/max_map_count` " #一个用户进程可以占用线程数的上限,若多个进程产生的线程总数接近threads-max,则会出现内存分配报错 echo "默认线程栈大小(单位:KB) `ulimit -s` " echo "用户$USER的最大进程数 `ulimit -u` " #用户能打开进程总数上限,受threads-max影响,即各个用户的进程数之和应小于threads-max,同时,各个用户的 echo "用户$USER当前使用的进程数 `ps -ef | awk '{print $1}'|grep $USER|wc -l` " echo "用户$USER当前使用的线程数 `ps -eLf | awk '{print $1}'|grep $USER|wc -l` " echo "系统最大句柄数(可打开文件数) `cat /proc/sys/fs/file-max` " echo "$USER用户单个进程可打开的文件数ulimit -n `ulimit -n` " echo "系统一共已使用的句柄数 `cat /proc/sys/fs/file-nr |awk '{print $1}'` " echo "$USER使用的句柄数 `lsof -u $USER|wc -l` "
原文来自:
本文地址://gulass.cn/script-for-resource.html编辑:王华超,审核员:逄增宝
Linux大全:
Linux系统大全: