zoukankan      html  css  js  c++  java
  • 操作系统相关知识

    1 监控系统的一些命令

       top:是linux中常用的性能分析工具,用来查看系统中各个资源的占用空间的数据。

          第一行是任务信息,从中到右分别是(当前时间),(系统运行时间,以时:分的格式),(当前登录用户数),(系统负载,三个数值分别是1分钟,5分钟,15分钟前到现在的平均值。

          第二行属于进程,从左到右分别是(进程总数),(正在运行的进程),(睡眠的进程),(停止的进程数),(僵尸进程)。

          第三行是关于CPU的信息,从左到右分别是(用户空间占用CPU百分比),(内核空间占用CPU百分比),(用户进程空间内改变过优先级的进程占用CPU的百分比),(空闲CPU的百分比)(,等待输入输出的CPU时间百分比),(硬件中断占用CPU时间的百分比),(软件中断占用CPU时间的百分比)。

          第四行和第五行属于内存信息。

       free:显示内存的使用状态。

             (total)(Mem)属于物理内存。

             (used)(Mem)使用的物理内存。

             (free)(Mem)可以使用的内存。

              他们之间的关系是(total)(Mem)=(used)(Mem)+(free)(Mem)

             (shared)(Mem)共享内存,表示有几个进程共享的内存。

             (buffers)(Mem)表示已经分配但还未使用的buffers大小。

             (cached)(Mem)表示已经分配但还未使用的cached大小。

              buffers和cached功能是:

              buffers是用于存放要输出到disk(块设备)的数据,而cached是存放从disk上读出的数据。都是为了提高IO的性能,由OS管理。

              操作系统为了提高IO read的性能,总是要多一些cached数据,这就是(cached)(memory)为什么比较大。

             (used)(-buffers/cached):一个应用程序认为系统被用掉多少内存。(used)(-buffers/cached)=(used)(Mem)—(buffers)(Mem)—(cached)(Mem)

             (free)(+buffers/cached):一个应用程序认为系统还有多少内存。(free)(+buffers/cached)=(free)(Mem)+(buffers)(Mem)+(cached)(Mem)

             free命令的数值都是从?proc/meminfo中读取的。 $ free -m是数值的单位为MB,不过数值没有那么详细。可以使用命令($ free -wm)可以得到buffers和cached各自使用的数值。

          pstree:以树状形式显示程序。进程状态的使用方法是(pstree PID)。

          kill:比一个信号发给一个或多个进程,默认为发送终止信号。终止进程的方法是(kill PID)。杀死进程使用方法是(kill -9 PID)。

         pgrep:通过进程和其他属性查找进程。查找进程方法是(pgrep 要查找的进程名称)。

         pkill:通过进程和其他属性发信号给进程。杀死进程是(pkill 要杀死的进程名称)。

         fdisk:创建磁盘分区。

                 d(delete):删除一个已存在的分区。

                 l(list):列出也存在分区的类型。

                m(menu):列出fdisk中使用的所有命令。

                n(new):添加一个新的分区。

                p(print):列出分区表的内容。

               q(quit):退出fdisk,但是不储存所操纵的变化。

               t(title):改变分区系统的id。

              w(write):退出fdisk,并储存所操纵的变化。

        partprobe:重新初始化内存中内核的分区表。

        mkfs:格式化内存。使用方法是(mkfs.操作过后的对象名 操作对象)。

        e2label:设定或查看一个设备的label名称。查看某个分区的方法是(e2label 操作的对象)。设定命令的方法是(e2label 操作的对象 wg)。

             df:查看硬盘分区信息。

             mount:挂载文件系统。挂载的方法是(mount 挂载的目标 挂载的点)。

             umount:卸载文件系统。卸载方法是(umount 操作的目标)。假如在操作的对象目录里使用方法是(umount -l 操作的对象)强制卸载。

        2、dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。。    

                   dd测试硬盘速度:dd if=/dev/zero of=/a.txt bs=200M count=1      
             dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。     
           注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2    
          参数注释:    
           if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >    
           of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >   
           ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。     
           obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。      
          bs=bytes:同时设置读入/输出的块大小为bytes个字节。   
             count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
      swapon:启动交换分区,启动的方法是(swapon 加上你要启动的路劲)。后面加上-a:启动全部的交换分区。后面加上那个-s:列出当前使用的所有系统交换分区的状态。

    2  进程的信息

        PID:进程id。

        PPID:父进程id。

        RUESR:Real user name。

        UID:进程所有者的用户id。

        USER:进程所有者的信息。

        TTY:启动进程的终端名(不是从终端启动的进程则会显示?)。

        RR:优先级。

        NI:nice值。(负值表示高优先级,正值表示低优先级)。

        P:最后使用的CPU(仅在多CPU环境下有意义)。

        %CPU:上次更新到现在CPU时间占用的百分比。

        TIME:进程使用CPU的时间统计(单位秒)。

        %MEM:进程使用的物理内存百分比。

        VIRT:进程使用的虚拟内存总理(单位KB)。VIRT=SWAP+RES.

        SWAP:进程使用的虚拟内存中被换出的大小(单位KB)。

         RES:进程使用的没有被换出的物理内存大小(单位KB)。RES=CODE+DATA。

         CODE:可执行代码占用的物理内存大小(单位KB)。

         DATA:可执行代码以外部分占用物理内存的大小(单位KB)。

         SHR:共享内存大小(单位KB)。

         nFLT:面页错误的次数。

         nDRT:最后一次写入到现在被修改的次数。

         S:进程状态

                       D=不可中断的睡眠状态。

                       R=运行。

                       S=睡眠。

                       T=跟踪或停止。

                       Z=僵尸进程。

        COMMAND:命令名或命令行。

        WCHAN:若该进程在睡眠,则会显示睡眠中的系统函数名。

        Flags:任务标志,参考sched.h。

    3  CPU的利用率与load average

        CPU正常的利用率是<70%的。CPU负载<或=1时,能正常执行。CPU负载>1时,属于超负荷执行。load average应该<或=CPU核数*0.7。CPU负载和CPU利用率过高都是不好的现象。

        为何要有1分钟,5分钟,15分钟三种cpu的负载:是希望我们将他们三个值结合起来看。或者说是展示一个动态图表示的数据。

        进程挂起是自身原因,遇到了I/O的阻塞,便会让出CPU让其他进程去执行,保证CPU一直在运行。

        与进程无关,在操作层面时,有个进程占用CPU过久时,或者需要调用硬盘里的文件时,而会调用其它进程使用CPU。

    4  硬盘的相关内容

        在linux系统中,每个设备都会被当一个文件来对待。而他们对应的文件名如下:

                         IDE硬盘:/dev/hd(a-d)

                         SCSI硬盘:/dev/sd(a-p)

                         U盘:/dev/sd(a-p){与SCSI硬盘一样)

                         CDROM:/dev/sr0

        硬盘的结构和分区:硬盘为什么要有分区,更容易管理和控制操作系统,这样系统效率高,更容易备份,可以限制用户使用磁盘份额。

        硬盘主要分为主分区,扩展分区和逻辑分区。一个硬盘上最大可以划分4个主分区,在SCSI磁盘最多可以分15个分区,IDE磁盘可以分63个分区。

         硬盘的逻辑结构:硬盘结构为磁道,块,磁柱和分区。

             块是盘片上访问的最小单位,一个块可以储存一个字节的数据。

             磁道是有一系列的头尾相连块组成的圆圈。

             磁柱是有一叠磁道在相同半径的每个盘面的磁道组成的。

             分区是有一组相邻的磁道组成的。

       挂载点的定义:将一个设备(通常是存储设备)挂载到一个已存在的目录。

        虚拟内存的定义:指一块硬盘空间当作内存来使用,称为交换分区(swap)。linux交换分区的型号是0x82.

       i节点的定义:i节点是一个数据结构,他存放着有关一个普通文件,目录或其他文件系统对象的基本信息。

       符号(软)连接:符号连接的定义是只想另一个文件的一个文件。

                             创建软连接的方法是用ln命令:使用的方法是(ln -s 你要操作的文件 需要存放的目录/建立的符号链接)。例:ln –s wolf/dog.wolf.baby bodydog/dog_ wolf.boy

        硬链接:硬链接(hard link)的定义是一个文件名和一个i节点之间对应关系,也可以认为一个硬链接在所对应的文件名上加一个额外的路径名。

                    使用ln命令创建硬链接的方法是:(ln 你要操作的文件 你要操作到哪个目录/你需要建立的路径名)例:ln wolf/wolf.dog backup/wolf.dog2.

    掌握Linux系统中常见的文件类型: -:普通文件(regular file),也有人称为正规文件。
                                    d:目录(directory)。
                                    l:符号(软)链接。
                                    b:块特殊文件(b是block的第1个字符),一般指块设备,如硬盘。
                                    c:字符特殊文件(c是character的第1个字符),一般指字符设备,如键盘。
    怎样检查磁盘空间:用df命令显示文件系统中磁盘使用和空闲区的数量。

               掌握df命令的功能:显示文件系统中磁盘使用和空闲区的数量。
               -a 显示所有磁盘
               -h 单位转换
                掌握du命令的功能: 显示目录和文件的大小a h同上

  • 相关阅读:
    使用Razor模板构建应用注意的细节
    分享一个秒计数器
    有效提高命中率的缓存设计
    伟大的C语言
    关于在使用Visual C++中使用MMX、SSE指令集的问题
    如何用SVN 或 WINCVS 下载x264 ffdshow T264 Kevinlib
    Visual C++图形特技
    图象处理部分文章列表
    C++,VC资源
    Visual C++ 如何:在各种字符串类型之间进行转换
  • 原文地址:https://www.cnblogs.com/fangjie0410/p/6909891.html
Copyright © 2011-2022 走看看