走入计算机的第七天(关于操作系统的内容)

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)。

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个分区。

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

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

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

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

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

时间: 2024-08-06 19:43:25

走入计算机的第七天(关于操作系统的内容)的相关文章

走入计算机的第十天(linux基础的结尾)

一  nfs服务器 1  NFS的介绍:是Network File System的简写,是网络文件系统.用于分散式文件系统的协定,由sun公司开发的,在1984年向外公布的. 2  NFS的功能:是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. 3  NFS的基本原则:是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系

走入计算机的第四十天(数据库1)

一  什么是数据库 数据库故名思意就是存放数据的地方,是指长期存储在计算机内有组织可以共享的数据的集合. 数据库的数据按照一定的数学模型组织,描述和储存的,具有较小的冗余性和较高的可扩展性,并共享 二 数据库管理系统软件 数据库管理系统(Database Management System)是操纵和管理数据库的大型软件,用于建立,使用和维护数据库,简称DBMS. 它对数据库进行统一的管理和控制,以确保数据库的安全性和完整性.用户通过DBMS访问数据库中的数据,数据库中的管理员也是通过DBMS进行

走入计算机的 第十七天(python的字符编码和函数)

一  字符编码的只是储配 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后数据丢失 因而需要保存到硬盘上,点击保存按钮,就从内存中把数据刷到了硬盘上. 在这一点上,我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已. 2. python解释器执行py文件的原理 ,例如python test.py 第一阶段:python解释器启动,此

走入计算机的第十八天(函数的参数)

一  形参和实参 1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元.因此,形参只在函数内部有效.函数调用结束返回主调用函数后则不能再使用该形参变量 2.实参可以是常量.变量.表达式.函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参.因此应预先用赋值,输入等办法使参数获得确定值 二   位置参数: 1 按照从左到右的顺序依次定义的参数,必须被传值,多一个不行,少一个也不行  ,与形参一 一对应叫做位置参数    2关键字

走入计算机的第十五天(python基础三)

一 变量值之类型与对象程序中需要处理的状态很多,于是有了不同类型的变量值,x='egon',变量值'egon'存放与内存中,绑定一个名字x,变量值即我们要存储的数据. 在python中所有数据都是围绕对象这个概念来构建的,对象包含一些基本的数据类型:数字,字符串,列表,元组,字典等程序中存储的所有数据都是对象,一个对象(如a=1)有: 一个身份(id) 一个类型(type) 一个值(通过变量名a来查看) 二 可变对象与不可变对象    实例被创建后,身份和类型是不可变的,    如果值是不可以被

走入计算机的第三十六天(自己创建锁及锁的类型)

python thread模块 锁 同步锁 Python中的线程是操作系统的原生线程,Python虚拟机使用一个全局解释器锁(Global Interpreter Lock)来互斥线程对Python虚拟机的使用.为了支持多线程机制,一个基本的要求就是需要实现不同线程对共享资源访问的互斥,所以引入了GIL.GIL:在一个线程拥有了解释器的访问权之后,其他的所有线程都必须等待它释放解释器的访问权,即使这些线程的下一条指令并不会互相影响.在调用任何Python C API之前,要先获得GILGIL缺点

走入计算机的第三十三天(异常处理和scoket编程)

一 异常处理 1 异常和错误,而错误分成了两种 一是语法错误,这种错误过不了解释器的检测,必须要在执行前改正 二是逻辑错误,在执行的时候检测出了错误. 2 什么是异常:异常就是程序在运行是产生的错误信息. 3 异常的种类 python3中不同的异常分为不同的类型,用不同的类型去标识.不同的类型对象错误都有相对应的标识语法. AssertionErr: 断言语句失败:关键字后边的条件为假的时候,程序将 停止并抛出AssertionError异常,语句一般是在测试程序的时候用于在代码中置入的检查点.

走入计算机的第二十七天(模块与包的调用)

一 模块(module)的概念 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Module). 使用模块的好处:最大的好处是大大提高了代码的可维护性. 其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包

走入计算机的第四十天(python中sockserver模块)

一.Python中的sockserver模块 1.该模块与sock模块不同之处是该模块自动帮我们分装好了一些功能,让我们在编程的时候直接调用这些功能就可以了,节省了编程步骤. 2.如图所示 注释:上图为服务端设置 该模块的操作方法比较死板,我们只要会熟悉的使用他就可以了.