zoukankan      html  css  js  c++  java
  • 计算机基础6

    创建swap分区

    Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。例如:安装redhat的时候,你可以默认划分硬盘空间,交换区的大小事系统默认配置,当你安装完系统后需要安装一个oracle数据库,突然发出警告,交换空间不够。此刻该怎么办?

    1. 查看交换分区的方式
      可以通过命令top,free命令查看当前的交换分区。也可以使用cat /proc/swaps查看交换分区

    2. 如何通过swap文件扩充交换空间的大小

    例如:增加1G的交换空间
    * dd if=/dev/zone of=/myswap bs=2k count=524288 //划分空间
    * mkswap /myswap //格式成交换分区的格式
    * swapon /myswap //使格式的swap生效
    设置后,可以通过上面的命令查看时否生效。当启动系统后需要自动加载交互分区,可以在/etc/fstab文件中增加:/myswap swap swap default 0 0

    1. 如何通过swap分区的方式增加交换空间

    • 如果希望添加一个交换分区(这里假设希望把/dev/hdb5添加为交换分区),这个硬盘不能被正在使用(也就是分区不能被加载,交换空间没有被激活)。分区表在使用时不能被修改,因为内核可能无法正确识别分区表的变化。这样数据可能会写入到错误的分区,而导致数据被覆盖而丢失,因为内核维护的分区表跟硬盘上的分区表不一致造成的。
      解决这个问题最简单的办法是将系统引导进入急救(rescue)模式下进行操作。当提示扫描并加载文件系统时,选择跳过。如果硬盘上没有任何分区被使用,这样就可以卸载分区,使用swapoff命令来关闭该硬盘上所有的交换分区。

    • 使用parted创建交换分区
      以root身份运行: parted /dev/hdb
      在parted命令的提示符,输入print查看当前分区表,以及空闲空间。开始和结束值的单位是MB,然后计算有多少空闲空间,以及你希望划分多少空间给交换分区。
      在parted提示符后,输入mkpartfs part-tyep linux-swap start end,这里part-type是primary、extend或logical。start是分区开始点,end是分区结束点。
      输入exit退出parted

    • 现在已经创建了交换分区,使用mkswap命令设置交换分区:
      mkswap /dev/hdb2

    • 为了立刻激活swap分区,输入以下命令:
      swapon /dev/hdb2

    • 为了在启动时激活它,在/etc/fstab中添加如下内容:
      /dev/hdb2 swap swap defaults 0 0
      下次启动时,系统会自动激活该交换分区。

    • 添加了新分区,并激活它以后,可以通过cat /proc/swaps或者free来查看该交换分区是否已经工作。

    linux 系统内存

    linux的内存管理机制与windows的有所不同。具体的机制我们无需知道,我们需要知道的是,linux的内存管理机制的思想包括(不敢说就是)内存利用率最大化。内核会把剩余的内存申请为cached,而cached不属于free范畴。当系统运行时间较久,会发现cached很大,对于有频繁文件读写操作的系统,这种现象会更加明显。

    直观的看,此时free的内存会非常小,但并不代表可用的内存小,当一个程序需要申请较大的内存时,如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。

    proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的采集流程图。

    /proc/meminfo 信息如下:

    • 需要使用的指标有:MemTotal ,MemFree,Buffers,Cached

      MemTotal:总内存大小
      MemFree: 空闲内存大小
      Buffers和Cached:磁盘缓存的大小
      Buffers和Cached的区别:
      buffers 是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
      cached 是用来给文件做缓冲。
      buffers 是用来存储目录里面有什么内容,权限等等。

    而cached直接用来记忆我们打开的文件,比如先后执行两次命令#man X,你就可以明显的感觉到第二次的开打的速度快很多。而buffers随时都在增加,比如先后两次使用ls /dev后,就会发现第二次执行的速度会较第一次快。

    这就是buffers/chached的区别。

    free 命令和内存计算

    $ free -m
                 total       used       free     shared    buffers     cached
    Mem:         1002        769        232          0         62        421
    -/+ buffers/cache:        286        715
    Swap:         1153          0       1153
    ---------------------------
    真实内存占用 = used-buffers-cached = 286

    alias 别名

    alias xxx = 'commond'

    软件包安装

    rpm -ivh softname.rpm

    rpm -ql 软件包名
    -qi
    -qf
    -q
    -qa
    -e swname #卸载

    yum可以解决依赖性,但是rpm不可以

    yum命令详解

    yum.conf

    [main]
    cachedir=/var/cache/yum         #yum下载的RPM包的缓存目录
    keepcache=0             #缓存是否保存,1保存,0不保存。
    debuglevel=2             #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
    logfile=/var/log/yum.log         #yum的日志文件所在的位置
    exactarch=1             #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
    obsoletes=1             #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
    gpgcheck=1             #是否检查GPG(GNU Private Guard),一种密钥方式签名。
    plugins=1             #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
    installonly_limit=3         #允许保留多少个内核包。
    exclude=selinux*         #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。
    #       This is the default, if you make this bigger yum won't see if the metadata
    # is newer on the remote and so you'll "gain" the bandwidth of not having to
    # download the new metadata and "pay" for it by yum not having correct
    # information.
    # It is esp. important, to have correct metadata, for distributions like
    # Fedora which don't keep old packages around. If you don't like this checking
    # interupting your command line usage, it's much better to have something
    # manually check the metadata once an hour (yum-updatesd will do this).
    # metadata_expire=90m
    # PUT YOUR REPOS HERE or IN separate files named file.repo
    # in /etc/yum.repos.d
    

    详解yum.repo文件

    什么是repo文件?

    repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!
    我们以一份系统自带的repo文件做为实例来探讨(#号后面是我加的注释):

    [fedora]      #方括号里面的是软件源的名称,将被yum取得并识别
    name=Fedora $releasever - $basearch   #这里也定义了软件 仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变 量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择 适合当前系统的软件包,以下同……
    failovermethod=priority   #failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择
    exclude=compiz* *compiz* fusion-icon* #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加
    #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
    #上面的一行baseurl第一个字符是'#'表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)
    #mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
    #上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
    选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中,我们就能获得较快的更新速度了,格式如下baseurl所示:
    baseurl=
    ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/releases/10/Everything/i386/os
    http://ftp.chg.ru/pub/Linux/fedora/linux/releases/10/Everything/i386/os
    http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os
    http://mirror.nus.edu.sg/fedora/releases/10/Everything/i386/os
    http://mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/os
    http://ftp.twaren.net/Linux/Fedora/linux/releases/10/Everything/i386/os
    http://ftp.itu.edu.tr/Mirror/Fedora/linux/releases/10/Everything/i386/os
    enabled=1 #这个选项表示这个repo中定义的源是启用的,0为禁用
    gpgcheck=1 #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定义用于校验的gpg密钥

    [name]
    name = xxxxx #baseurl = file:///opt
    baseurl = http://ip
    enable = 1
    gpgcheck = 0

    yum常用命令

    yum clean all #清除缓存
    yum makecache #建立缓存

    yum grouplist #yum安装包组列表
    yum groupinstall '软件组'

    yum install epel-* -yum

    有时候出现没有找到软件包的情况,需要安装外部源库

    yum -y install xxxxx #安装
    yum erase xxxxx #卸载
    yum remove xxxxx #卸载
    yum reinstall xxxxx #重新安装

    yum update #包括内核系统更新
    yum upgrade #仅更新软件

    防止默认更新,需要在yum配置文件中修改默认选项

    • 创建软件源
      download rpm -------------> cangku_httpd
      yum install createrepo -y
      createrepo /cengku_hettpd
      pwd

    cat httpd.repo

    yum groupinstall
    tar xvf Py…

    cd /root/P….
    .

    作业<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    Tomcat
    DOM/SAX/PULL解析XML
    Android网络编程 知识框架
    Chapter 10 Networking/JSON Services
    Chapter 10 Networking/Web Service Using HTTP
    Android-Universal-Image-Loader
    8.Media and Camera/Media Camera
    PAT乙级1007.素数对猜想(20)
    筛法求素数详解
    PAT乙级1006.换个格式输出整数(15)
  • 原文地址:https://www.cnblogs.com/scott-lv/p/7487326.html
Copyright © 2011-2022 走看看