首页 > 编程语言 > 详细

python全栈开发第6天

时间:2017-03-18 18:17:08      阅读:409      评论:0      收藏:0      [点我收藏+]

作业一:
1) 开启Linux系统前添加一块大小为15G的SCSI硬盘

技术分享

2) 开启系统,右击桌面,打开终端

3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1个逻辑分区,大小为5G

技术分享

4) 格式化主分区为ext3系统

技术分享

5) 将逻辑分区设置为交换分区

技术分享

6) 启用上一步的交换分区

技术分享

7) 查看交换分区的状态

 技术分享

 

作业二:free命令查看内存

技术分享

整理buffer与cache的作用

Mem:表示物理内存统计
-/+ buffers/cached:表示物理内存的缓存统计
Swap:表示硬盘上交换分区的使用情况(这里我们不去关心)
系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。
我们使用total1、used1、free1、used2、free2 等名称来代表上面统计数据的各值,1、2 分别代表第一行和第二行的数据。
total1: 表示物理内存总量。
used1: 表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free1: 未被分配的内存。
shared1: 共享内存,一般系统不会用到,这里也不讨论。
buffers1: 系统分配但未被使用的buffers 数量。
cached1: 系统分配但未被使用的cache 数量。buffer 与cache 的区别见后面。
used2: 实际使用的buffers 与cache 总量,也是实际使用的内存总量。
free2: 未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
  可以整理出如下等式:
total1 = used1 + free1
total1 = used2 + free2
used1 = buffers1 + cached1 + used2
free2 = buffers1 + cached1 + free1

CentOS 6及以前

$ free
              total       used        free    shared    buffers    cached
Mem:        4040360    4012200       28160         0     176628   3571348
-/+ buffers/cache:      264224     3776136
Swap:       4200956      12184     4188772
$

 内存的使用分作4部分:

  • A. 程序使用的;
  • B. 未被分配的;
  • C. Buffers (buffer cache)
  • D. Cached (page cache)
显然,A (程序使用的) 肯定是used,B (未被分配的) 肯定是free。但是,C (Buffers) 和 D (Cached) 是算作used还是算作free呢?一方面,它们已经被分配了,可以算作used;另一方面,当程序需要时,可以回收它们来使用,可以算作free。所以,怎么算都合理。这就是在free命令的output中,第一行和第二行的区别:
  • 第一行(Mem):Buffers和Cached被算作used。也就是说,它的free是指 B (未被分配的);它的used是指 A + C + D;
  • 第二行(-/+ buffers/cache):Buffers和Cached被算作free。也就是说,它的used是指 A (程序使用的);它的free是指 B + C + D;行名称“-/+ buffers/cache”的含义就是“把Buffers和Cached从used减下来,加到free里”。
搞清这些之后,我们可以算出A,B,C和D各自的值:
  • A=264224
  • B=28160
  • C=176628
  • D=3571348
可见验证一下:
  • total=A + B + C + D
  • 第一行used = A + C + D
  • 第二行free  = B + C + D

CentOS 7 

free命令的out:

# free
          total      used       free   shared    buff/cache    available
    Mem:  507368   284868        48140     4348        174360    181424
    Swap:   6291448     3452  6287996

首先,C (Buffers) 和D (Cached)被和到一起,即buff/cache;
其次,used就是指A (程序使用的);free就是指B (未被分配的);
另外,CentOS 7中加入了一个available,它是什么呢?手册上是这么说的: 
  • MemAvailable: An estimate of how much memory is available for starting new applications, without swapping.也就是一个新启动的应用最大能使用的内存。
前面说过,当程序需要时,可以回收C (Buffers)和D (Cached),那么MemAvailabe不就是B+C+D吗?当程序需要时可以回收C和D,这句话以前是正确,但是现在就不精确了:因为, 现在,C和D中不是所有的内存都可以被回收。所以,大致可以这么理解,MemAvailable = B (未被分配的) + C (Buffers) + D (Cached) - 不可回收的部分。哪些不可回收呢?共享内存段,tmpfs,ramfs等。详细的介绍如下:
 
/proc/meminfo: provide estimated available memory

Many load balancing and workload placing programs check /proc/meminfo to estimate how much free memory
is available. They generally do this by adding up "free" and "cached", which was fine ten years ago,
but is pretty much guaranteed to be wrong today.
It is wrong because Cached includes memory that is not freeable as page cache, for example shared memory
segments, tmpfs, and ramfs, and it do esnot include reclaimable slab memory, which can take up a large
fraction of system memory on mostly idle systems with lots of files.
Currently, the amount of memory that is available for a new workload,without pushing the system into swap,
can be estimated from MemFree, Active(file), Inactive(file), and SReclaimable, as well as the "low"watermarks
from /proc/zoneinfo.
However, this may change in the future, and user space really should not be expected to know kernel internals
to come up with an estimate for the amount of free memory.
It is more convenient to provide such an estimate in /proc/meminfo. If things change in the future, we only
have to change it in one place.

计算真实的内存使用率

# free
          total      used       free   shared    buff/cache    available
    Mem:  507368   284868        48140     4348        174360    181424
    Swap:   6291448     3452  6287996

根据我的内存使用数据来说应该是这样计算内存的使用率的:

内存的使用率=(used+buff/cache)/total=(284868+174360)/507368=90.5%

作业三:dd命令测试硬盘速度

技术分享

作业四:查找一个名为firewall的进程,并且将其强制杀死

 

作业五:rpm命令
1) 挂载光盘文件到/media目录

技术分享

2) 进去/media目录下的Packages目录

技术分享

3) 查看系统已安装的所有rpm包

使用命令:rpm -qa

技术分享

4) 查看系统是否安装dhcp软件包

使用命令:rpm -qa | grep dhcp

技术分享

5) 安装dhcp软件包

技术分享

6) 查看dhcp软件包的信息

技术分享

7) 查看dhcp软件包中所包含的所有文件

技术分享

8) 查看/bin/ls文件是由哪个软件包产生

技术分享

9) 卸载dhcp软件包

技术分享

作业六:yum命令
1) 自定义yum仓库:createrepo

2) 自定义repo文件

  1. 在根目录下建立createrepo目录,命令为:

    mkdir /createrepo

  2.将在/media/Packages/目录下找到图片中红颜色名称的安装包用cp命令拷贝到库文件夹/createrepo中;

    技术分享

  3.进入/etc/yum.repos.d目录,将里面所有的文件移动到/repos.bak目录中,这里需要说明一下,因为我们在公司里面需要保障软件版本的可靠性、稳定性及兼容性的问题,所以,这里我建议要将系统自己带的yum源文件移动到其他的位置,采用我们自己定制的源,这样我们才能很好的把软件的版块控制好,才能保障客户使用软件的稳定性;

  4.在当前目录下建立并编写文件Local.repo,用此命令:vim Local.repo。

    编辑文件内容为:

    技术分享

  5.正式创建我们的安装库:

   createrepo /createrepo 

    技术分享 

3) 使用yum命令安装httpd软件包

  yum -y install httpd

   技术分享


4) 卸载httpd软件包:yum –y remove 软件名

    技术分享

5) 使用yum安装组件‘KDE 桌面‘:yum –y groupinstall 组件名

使用的命令为:yum -y groupinstall KDE 桌面,

由于我的系统版本比较新,这里我用的命令为:

yum -y groups install KDE 桌面

技术分享

技术分享

由于所安装的文件过多,这里不一一截图了。


6) 掌握使用yum删除组件‘KDE 桌面’:yum –y groupremove 组件名

这里我的命令为:yum -y groups remove KDE 桌面

技术分享

 


7) 掌握清除yum缓存:yum clean all

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers


8) 使用yum查找软件包:yum search 软件包名

 技术分享

作业七:源码安装python

1.解压文件

本人将Python-3.6.0.tgz的源代码文件全部解压到/usr/Python-3.6.0目录中。

2.我们可以在Python-3.6.0目录中找到configure文件进行vim编辑,对prefix字段后面的等号对应的路径(定制用户的安装路径)进行编辑,这里我们不做改动,保持默认,如图:

技术分享

3.使用./configure 命令检查一下软件的依赖关系,然后用make命令编译Python-3.6.0的源码,然后用make install安装,这里我们可以合并成为一步操作,命令为:

运行./configure后提示如图:

技术分享

这里提示我们需要安装开发工具,所以,我们运行命令进行安装:

yum -y groups install 开发工具  

安装完成后的结果

技术分享 

再次执行./configure的结果如图:

技术分享

 

make && make install

技术分享

安装完成。

但是我们要试验一下是否正确的安装,让我来实验一条命令:

技术分享

但是我们如果想要在任何目录下都能运行此Python3.6的话,我们需要修改一下环境变量:

1、用vim /etc/profile 命令后,在文件的末尾加上两行内容为:

  PATH=/usr/local/bin/:$PATH

  export PATH

保存退出,然后我们再根目录下运行一下python3.6,如图,显然成功了:

技术分享

 

 

 

 

 

 

 

python全栈开发第6天

原文:http://www.cnblogs.com/mojiexiaolong/p/6568180.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!