zoukankan      html  css  js  c++  java
  • nginx十四项配置优化

    nginx十三项配置优化

    nginx十三项配置优化:

    ~1、配置nginx隐藏版本号   :【1】已安装过nginx  修改源码包 【2】未安装过nginx  修改配置文件

    ~2、修改nginx用户与组  :【1】编译安装时指定   【2】修改配置文件

    ~3、配置nginx网页缓存时间   

    ~4、实现nginx的日志切割     【1】日志存放位置 /usr/local/nginx/logs/access.log   【2】设置周期性计划任务

    ~5、配置nginx实现连接超时   修改主配置文件 /usr/local/nginx/conf/nginx.conf   这个文件的原文件内容在 /usr/src/nginx-1.6.0/conf/nginx.conf 文件

    ~6、更改nginx运行进程数    修改配置文件worker_processes参数   【1】全局配置  【2】I/O事键

    ~7、配置nginx实现网页压缩功能   修改/usr/local/nginx/conf/nginx.conf 文件    nginx的ngx_http_gzip_module 压缩模块提供了对文件内容压缩的功能,

    ~8、配置nginx实现防盗链功能  【1】资源主机设置防盗链 修改/usr/local/nginx/conf/nginx.conf 文件    主要针对server添加东西                  

    ~9、对FPM模块进行参数优化   

    ~10、nginx为目录添加访问控制   【1】用户访问控制 【2】客户端访问控制

    ~11、自定义错误页面  /usr/local/nginx/conf/nginx.conf   主要修改server文件内容 建立错误页面文件  根据要求定义页面内容

    ~12、自动索引  

    ~13、通过UA实现手机端和电脑端的分离          【1】移动端访问,实现不同的客户端访问不同内容  【2】不同浏览器访问到不同的页面

    ========================================================================================================================================

    Nginx配置优化

    LNMMP :Linux Nginx Mysql Memcached (为mysql做缓存的 用于缓解压力的)Php
    LNMT   : Linux nginx mysql tomcat
    版本号要是被知道的话,容易被别人发现漏洞
    一、配置Nginx隐藏版本号  F12用于检查元素使用的,可以看到 headers
      1修改源码包 ,必须在安装之前(测试命令curl -I http://192.168.200.102)
    yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
    useradd -M -s /sbin/nologin nginx
    tar xf nginx-1.16.1.tar.gz -C /usr/src/
    cd /usr/src/nginx-1.16.1/
     vim src/core/nginx.h
    #define NGINX_VERSION "1.16.1"  (修改版本号)
    #define NGINX_VER "nginx/" NGINX_VERSION  (修改服务名)
    2修改配置文件(已安装nginx)
    vim /usr/local/nginx/conf/nginx.conf
    在http内添加一条,隐藏版本号
     22 行   server_tokens off;
    (在源码包已经隐藏版本号的情情况下,再修改主配置文件,会显示服务名,但不显示服务版本号)
    如果安装php 的话也需要隐藏   php配置文件中配置了fastcgi_param SERVER_SOFTWARE选项,则编辑php-fpm配置文件,将fastcgi_param SERVER_SOFTWARE对应值修改为fastcgi_param SERVER_SOFTWARE nginx;(除了隐藏nginx的版本以外,php的版本也要隐藏)
    二、修改Nginx用户与组  
    nginx 运行时进程需要有用户与组身份的支持,以实现对网站文件读取时进行访问控制。nginx默认使用nobody用户账号与组账号,一般也需要进行修改
    1编译安装时指定  
     useradd -M -s /sbin/nologin nginx
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
    2修改配置文件
    vim /usr/local/nginx/conf/nginx.conf
    user  nginx nginx;  (修改用户和[组]组可以省略)
    killall -HUP nginx、
    ps uax |grep nginx  查看进程
    三、配置Nginx网页缓存时间
    当nginx将网页数据返回给客户端后,可设置资源在客户端缓存的时间,以方便客户端在日后进行相同内容的请求时直接返回,以避免重复请求,加快了访问速度
    一般针对静态网页进行设置,对动态网页不用设置缓存时间,因为动态网页在服务器上不是完整的存在
    设置方法:可修改配置文件,在http段、或server段、或location段加入对特定内容的过期参数
    编辑主配置文件,添加以下内容
    vim /usr/local/nginx/conf/nginx.conf
    location ~ .(gif|jpg|jpeg|png|bmp|ico)$ {
    expires 1d;
    }
    location ~ .*.(js|css)$ {     //  js|css 表示缓存的文件 //~表示匹配 ~* 表示不区分大小写expires 1h;   //表示缓存时间
    }

     killall -HUP nginx
    做个小实验证明  CTRL+F5 表示强制刷新,F5时直接刷新
     1、从桌面上传到虚拟机的/usr/local/nginx/html/一个图片 linux.jpg
    2、vim /usr/local/nginx/html/index.html 
    在body 最后一行加上 <img src="linux.jpg" />
    保存退出,
    3、在浏览器中进行访问192.168.200.66
    会出现一个图片 
    按下F12  或者右键查看网页元素 ,点击查看缓存时间, 然后再用F5刷新再看访问时间
    四、实现Nginx的日志切割
    输入:tail -f /usr/local/nginx/logs/access.log
    再网页中每刷新一次,tail -f /usr/local/nginx/logs/access.log 就会出现一条记录
    这样一来 这个日志文件信息会越来越大,所以就有了日志切割,用于分析数据,把文件保存成多份   
    日志存放位置/usr/local/nginx/logs/access.log
    vim /opt/cut_nginx_log.sh
    #!/bin/bash
    # cut_nginx_log.sh
     
    datetime=$(date -d "-1 day" "+%Y%m%d")      (变量为前一天的完整时间)
    log_path="/usr/local/nginx/logs"          (定义日志存放位置变量)
    pid_path="/usr/local/nginx/logs/nginx.pid"      (定义PID文件变量)
    [ -d $log_path/backup ] || mkdir -p $log_path/backup  (如果P没有backup这个文件,则创建)
    if [ -f $pid_path ]                    (如果Nginx在运行,有PID文件)
    then
            mv $log_path/access.log $log_path/backup/access.log-$datetime    (移动现有日志文件到backup内,叫做access.log-一天前的日期)
            kill -USR1 $(cat $pid_path)                        (重新生成新的空白日志文件)
            find $log_path/backup -mtime +30 | xargs rm -f              (寻找backup内30天修改过的文件删除)
    else
            echo "Error,Nginx is not working!" | tee -a /var/log/messages        (输出Error,Nginx is not working!并且写入系统日志messages内)
    fi
     
    chmod +x /opt/cut_nginx_log.sh  
    设计周期性计划任务
    crontab -e
    0  0  *  *  *  /opt/cut_nginx_log.sh
    检测:
    /opt/cut_nginx_log.sh
    ls /usr/local/nginx/logs/backup/
    killall -9 nginx
    /opt/cut_nginx_log.sh    //如果报错的话,可以把/usr/local/nginx/logs/nginx.pid文件删除了,再进行执行
    tail -1 /var/log/messages
    五、配置Nginx实现连接超时
    用户每次访问都要重新建立TCP3次握手,4次断开,每访问一次就要响应与断开,增加了服务的资源浪费,
    在企业网站中,为了避免客户长时间占用链接,造成服务器资源浪费,可以设置相应的连接超时参数,实现控制连接访问时间
    keepalived_timeout: 设置连接保持超时时间,一般可只设置该参数,默认为65秒,可根据网站段的情况设置,或者关闭,可在http段、server段、或者location段设置
    client_header_timeout:指定等待客户端发送请求头的超时时间
    client_body_timeout :设置请求体读取超时时间
    注意:若出现超时,会返回408错误
     修改主配置文件 vim /usr/local/nginx/conf/nginx.conf
    在http内添加
     34 keepalive_timeout  65;  (设置连接保持超时时间,一般可只设置该参数,默认为65秒,可根据网站的情况设置,或者关闭,可在http段、server段、或者location段设置。)
     35 client_header_timeout 60;  (指定等待客户端发送请求头的超时时间。)
     36 client_body_timeout 60;    (设置请求体读取超时时间。)
     nginx -t
     killall -HUP nginx
    六、更改Nginx运行进程数
    在高并发场景,需要启动更多的nginx进程以保证快速影响,以处理用户的请求,避免造成阻塞
    修改配置文件的worker_processes参数,一般设置为CPU的个数或者核数(也可两倍)
    一般物理的服务器来说,两个CPU ,每个CPU 8核,一共是16核
    默认nginx的多个进程可能更多的跑在一颗CPU上,可以分配不同的进程给不同的CPU处理,充分利用硬件多核多CPU,在一台4核物理服务器,可以进行下面的配置,将进程进行分配
    3 worker_processes 4;
    4 worker_cpu_affinity 0001 0010 0100 1000 ;
    注意这两个要一一对应
    1 全局配置 (在括号之外的内容)
    user nginx [nginx];  运行用户(nginx组可以不用写)
    worker_processes 2;   指定工作进程数量 (一般都是按照核心数指定一比一)
    worker_cpu_affinity 01 10;  (指定CUP分配。如果四核0001 0010 0100 1000)
    worker_rlimit_nofile 102400;  (指定Nginx一个进程打开的最多文件数目,理论值应该是最多打开文件数【ulimit -n查看,修改:ulimit -n 新值】【ulimit -u 最大用户进程数,修改:ulimit -u 新值】这两个值最好一样,现在是临时修改,永久修改把这两条命令放在/etc/profile内)
    error_log logs/error.log;  (错误日志存放位置)
    pid logs/nginx.pid;  (进程PID存放位置)
    2 I/O事键 (events括号内的内容)
     
       use epoll;  (使用epoll模型,对于2.6以上的内核,建议使用epoll模型以提高性能)
    worker_connections 1024;  (工作连接数量,一般工作中配置为4096。单个工作进程并发数量,服务器总并发数量为工作进程数X工作连接数)
    killall -HUP nginx
    七、配置Nginx实现网页压缩功能
    nginx 的ngx_http_gzip_module 压缩模块提供了对文件内容的压缩的功能,允许nginx服务器将输出内容发送至客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,模块默认已经安装
    nginx -v  //查看nginx版本信息
    nginx -V // 查看安装时./configure 的信息
    在http内添加
    Nginx的ngx_http_gzip_module压缩模块提供了对文件内容压缩的功能,允许nginx服务器将输出内容发送到客户端之前进行压缩
    修改主配置文件 vim /usr/local/nginx/conf/nginx.conf
    38 gzip  on;    (开启gzip压缩输出)
    39 gzip_min_length 1k;    (用于设置允许压缩的页面最小字节数【大于1K文件要压缩】)
    40 gzip_buffers 4 16k;    (表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来储存gzip压缩结果)
    41 gzip_http_version 1.1;    (设置识别http协议版本,默认是1.1)
    42 gzip_comp_level 2;    (gzip压缩比,1-9等级)
    43 gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;    (压缩类型,是就对哪些网页文档启用压缩功能)
    44 #gzip_vary  on;    (选项可以让前端的缓存服务器经过gzip压缩的页面)
     killall -HUP nginx
    八、配置Nginx实现防盗链功能
    资源主机设置防盗链
    盗链例子: 比如说打开网页后,A服务器由图片,B服务器没有图片,但是B服务器也想用图片,但是又不想增加自己服务器的流量压力,所以就复制了A服务器的图片连接,并添加到自己的html中,也即/usr/local/nginx/html/index.html 这个文件中,
    然后用户访问B服务器时就会访问到A服务器上,这样就会造成A服务器,访问流量超标,导致压力很大,这就是资源盗链。
    配置说明:
    valid_referers 设置信任网站
    none 浏览器中referer(Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理)为空的情况,就直接在浏览器访问图片
    blocked referer不为空的情况,但是值被代理或防火墙删除了,这些值不以http://或https://开头
     修改主配置文件 vim /usr/local/nginx/conf/nginx.conf
    在server内添加
     location ~* .(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {    (匹配以这些格式结尾的)
                valid_referers none blocked *.source.com source.com;    (设置信任的网站)
                if ($invalid_referer) {                    (判断除了信任以外的)
                    rewrite ^/ http://www.source.com/error.jpg;          (转到一个错误图片上)
                    #return 403;
                }
            }
     killall -HUP nginx
    九、对FPM模块进行参数优化
    Nginx的PHP解析功能实现,如果时交由FPM(fastcgi 进程管理器)处理的,为了提高PHP的处理速度,可对FPM模块进行参数跳转 
    FPM优化参数:
    pm    (使用哪种方式启动fpm进程,可以说static(静态)和daynamic(动态),前者将产生固定数量的fpm进程,后者以动态的方式产生fpm进程)
    pm._max_children  (static放手机下开启的fpm进程数)
    pm.start_servers    (动态方式下初始的fpm进程数量)
    pm.min_spare_servers  (动态方式下最最小的fpm空闲进程数)
    pm.max_spare_servers    (动态方式下最大的fpm空闲进程数) 
    vim /usr/local/php5/etc/php-fpm.conf
    pm = dynamic
    pm.start_servers = 5
    pm.min_spare_servers = 2
    pm.max_spare_servers = 8
    十、Nginx为目录添加访问控制
    用户访问控制:使用apache的htpasswd创建密码文件
    两种认证方式: 基本认证(基准认证)
      摘要认证
    yum -y install httpd-tools  (安装httpd-tools)  //可以用rpm -qt $(which htpasswd)
    htpasswd -c /usr/local/nginx/.htpasswd crushlinux //-c创键,但只用创建一次就可以了 (指定一个保存用户和密码的位置 。-c是创建,如果创建一次之后,以后不可以再加-c,会覆盖原文件)
    htpasswd  /usr/local/nginx/.htpasswd admin   //创建多个用户,不需要用-c指定
    vim /usr/local/nginx/conf/nginx.conf
     location /admin {
     stub_status on;  
     access_log off;  
     auth_basic "Nginx Admin";    //jai (basic为认证类型,一种为摘要认证,另一种为基本【基准认证】认证,basic为基本认证,摘要 认证很多浏览器不支持) 
     auth_basic_user_file /usr/local/nginx/.htpasswd;  (指定认证文件名)
    }
    nginx -t
     killall -HUP nginx
    在浏览器中进行验证,输入www.source.com/admin
    会出现用户验证的页面
    客户端地址访问控制:
    vim /usr/local/nginx/conf/nginx.conf
     location ~ /status {
     stub_status on;  
     access_log off;  
     auth_basic "Nginx Status";    //jai (basic为认证类型,一种为摘要认证,另一种为基本【基准认证】认证,basic为基本认证,摘要 认证很多浏览器不支持) 
     auth_basic_user_file /usr/local/nginx/.htpasswd;  (指定认证文件名)
     allow 192.168.200.2;  //允许 访问
     deny 192.168.200.0/24;  //拒绝 访问
    }
    nginx -t
     killall -HUP nginx
    在上一条location里添加
    allow IP;  (允许IP)
    deny IP;  (拒绝IP)
    也可添加网段短格式,192.168.200.0/24
    在网页中进行测试 192.168.200.66/admin
    会报错误状态码
    404 页面找不到
    401 用户名密码验证错误
    403 地址被拒绝
    408 连接超时
    十一、自定义错误页面
    首次在/usr/local/nginx/html 文件内上传一个自定义的错误页面
    vim /usr/local/nginx/conf/nginx.conf
    在server内添加
    error_page 403 404              /404.html;
            location = /404.html {
                root html;
            }
    建立错误 页面文件(根据要求定义页面内容)
    vim  /usr/local/nginx/html/404.html
    <img src="文件名" />
    保存退出
    nginx -t
     killall -HUP nginx
    十二、自动索引
    类似做一个下载站
    mkdir /usr/local/nginx/html/mirrors
    cd /usr/local/nginx/html/mirrors/
    mkdir {3..7}.{1..9}
    cd 7.9
    ls
    touch Centos7.9.iso
    cd
    // cd /usr/local/nginx/html/  (进入nginx网页存放目录)
    //mkdir  123/abc{1..10} -p  (在文件夹内创建abc1-10个文件夹)
    //touch 123/abc1/1.txt    (建立测试文件)
    编辑主配置文件
    vim /usr/local/nginx/conf/nginx.conf
    在server内添加
     location /mirrors {
            autoindex on;
            }
    nginx -t
     killall -HUP nginx
     当访问www.source.com/mirrors的时候会显 示目录,点击可以下载目录内内容
    十三、通过UA实现手机端和电脑端的分离
    实现nginx区分pc和手机访问不同的网站,是物理上完全隔离的两套网站(一套是移动端、一套是PC端),这样带来的好处PC端和移动端的内容可以不一样,移动版网站不需要包含特别多的内容,只要包含必要的文字和较小的图片,这样会更节省流量,但同时也会增加困难,难题就是需要维护两套环境,并且需要自动识别出来用户的物理设备并
    跳转到相应的网站,当判断错误时用户可以自己手动切换回正确的网站
    做法:
    有两套网站代码,一套PC版放在/usr/loca/nginx/html/web,一套移动版放在/usr/local/nginx/html/mobile  只需要修改nginx的配置文件,nginx通过UA来判断是否来自移动端的访问,实现不同的客户端访问不同内容
    1移动端访问,实现不同的客户端访问不同内容(判断 $http_user_agent 【有浏览器和客户端相关信息】变量)
    cd /usr/local/nginx/html  (进入网页存放目录)
    mkdir web mobile      (建立两个文件夹)
    vim web/index.html      (建立pc端访问页面)
    vim mobile/index.html    (建立手机端访问页面)
    vim /usr/local/nginx/conf/nginx.conf  (修改主配置文件)
    location / {
      root /usr/local/nginx/html/web;  (默认PC端访问内容)
       if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" )
    {
    root /usr/local/nginx/html/mobile;  ( 如果是手机移动端访问内容)
    }
     index index.html index.htm;
    }
    killall -HUP nginx
    2不同浏览器访问到不同的页面
    vim /usr/local/nginx/conf/nginx.conf
    location / {
            if ($http_user_agent ~ Firefox) {    (如果浏览器匹配Firefox访问firefox)
                root /usr/local/nginx/html/firefox;
            }
            if ($http_user_agent ~ MSIE) {    (如果浏览器匹配MISE访问msie)
                root /usr/local/nginx/html/msie;
            }
                index  index.html index.htm;
            }
    nginx -t
    cd /usr/local/nginx/html
    mkdir firefox msie
    echo "hello,firefox" >firefox/index.html
    echo "hello,msie" >msie/index.html
    killall -HUP nginx
    十四、nginx平滑升级版本
    1、nginx平滑升级概述
        随着网站并发访问量越来越高,nginx web服务器也越来越流行,nginx版本换代越来越频繁,
    1.15.2版本的nginx更新了许多新功能,生产环境中版本升级必然的,但是线上业务不能停,此时nginx的升级就是运维的重要工作了。
    2、nginx平滑升级原理
    多进程模式下的请求分配方式
    nginx默认工作在多进程模式下,即主进程(master process)启动后完成配置加载和端口绑定等工作,fork出指定数量的工作进程(worker process),这些子进程回持有监听端口的文件描述符(fd),并通过在该
    描述符上添加监听事件来接受连接(accpet)。
    3、信号的接收和处理
    nginx主进程在启动完成后会进入等待状态,负责响应各类系统消息,如:SIGCHLD、SIGHUP、SIGUSR2等
    nginx信号简介:
    主进程支持的信号
    TERM INT : 立即退出
    QUIT: 等待工作进程结束后再退出
    KILL:强制终止进程
    HUP:重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程
    USR1:重新打开日志文件
    USR2:启动新的主进程,实现热升级
    WINCH: 逐步关闭工作进程
    工作进程支持的信号:
    TERM,INT :立即退出
    QUIT: 等待请求处理结果后再退出
    USR1:重新打开日志文件
    nginx 平滑升级实战:
    [1]、首先nginx旧版本的正常安装
    yum -y install pcre-devel zlib-devel
    ll nginx-*
    useradd -M -s /sbin/nologin nginx
    tar xf nginx-1.14.2.tar.gz -C /usr/src/
    cd /usr/src/nginx-1.14.2/
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_flv_module --with-http_gzip_static_module && make && make install
    /usr/local/nginx/sbin/nginx
    netstat -anpt | grep :80
    elinks -dump http://localhost
    nginx -V //查看旧版nginx的编译参数
    [2]、编译新版本nginx源码包,安装路径需与旧版本一致,注意:不要执行make install
    tar xf nginx-1.15.9.tar.gz -C /usr/src/
    cd /usr/src/nginx-1.15.9/
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_flv_module --with-http_gzip_static_module && make
    //不要加make install  ,作用是把make编译的配置项添加到指定文件中
    [3]、备份二进制文件,用新版本的替换
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
    ls objs/
    cp objs/nginx /usr/local/nginx/sbin/
    ll /usr/local/nginx/sbin/
    [4]、确保配置文件无报错
    nginx -t
    [5]、发送USR2信号    目的是产生新版本的工作进程
    向主程序(master)发送USR2信号,nginx会启动一个新版本的master进程和对应工作进程,和旧版本一起处理请求
    ps aux |grep nginx  //查看旧的nginx进程
    kill -USR2 70556
    ps aux |grep nginx
    killall -USR2 nginx
    业务不能断进行nginx升级
    [6] 发送WINCH信号   让主进程在它手下的进程逐步退出
    向旧的nginx主进程(master)发送WINCH信号,它会逐步关闭自己的工作进程(主进程不退出),这时所有的请求都会由新版的nginx处理
    kill -WINCH 4108
    ps aux | grep nginx |grep -v grep
    注意:回滚步骤,发送HUP信号
    如果这时需要退回继续使用旧版本,可向旧的nginx主进程发送HUP信号,它会重新启动工作进程,仍使用旧版本配置文件,然后可以将新版nginx进程杀死(使用QUIT、TERM、或者是 KILL)
    kill -HUP 4108
    [7]、发送QUIT信号  让master进程退出
    升级完毕,可向旧的nginx主进程(master)发送(QUIT、TERM、或者KILL)信号,使旧的主进程退出
    kill -QUIT 4108
    ps aux| grep nginx| grep -v grep
    [8]、验证nginx版本号,并访问测试
    /user/local/nginx/sbin/nginx -v
    USR1重新写新的日志
    =======================================
    CPU相关信息查看
    查看cpu型号
    grep "model name" /proc/cpuinfo |uniq
    dmidecode -s processor-version | uniq
    查询物理CPU个数
    grep 'physical id' /proc/cpuinfo | sort -u |wc -l
    grep 'physical id' /proc/cpuinfo | uniq |wc -l
    查看cpu核心数
    grep 'core id' /proc/cpuinfo | sort -u |wc -l
    grep 'core id' /proc/cpuinfo | uniq |wc -l
    查看cpu线程数
    grep 'processor'  /proc/cpuinfo | sort -u |wc -l
    grep 'processor'  /proc/cpuinfo |  uniq |wc -l
    free -m
    df -Th
    mii-tool ens32
  • 相关阅读:
    2018常用网站 图片处理
    iOS判断当前时间是否处于某个时间段内
    iOS 页面跳转和返回,持续编写
    模板引擎-freemarker
    HibernateTemplate使用注意点
    hibernate-注解及配置
    hibernate 异常
    javaEncode
    eclipse 创建注释模板
    eclipse 和 javaClass
  • 原文地址:https://www.cnblogs.com/elin989898/p/11871391.html
Copyright © 2011-2022 走看看