设为首页 收藏本站
查看: 679|回复: 0

[经验分享] CentOS中的网络管理+进程管理

[复制链接]

尚未签到

发表于 2018-4-21 15:32:26 | 显示全部楼层 |阅读模式
  nmcli命令:

  command - line tool for controlling NetworkManager

  格式:nmcli [OPTIONS] OBJECT { COMMAND | help }

  OPTIONS: = {

  -t [erse]

  -p [retty]

  -m [mode] tabular | multiline

  -f [ields] <field1, field2, ...> | all | common

  -e [scape] yes | no

  -v [ersion]

  -h [elp]

  }

  OBJECT: connection | device

  device - show and manage network interfaces

  COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }

  status:  状态显示
  connection - start, stop, and manage network connections

  start: 启动

  stop: 停止

  manage: 管理

  COMMAD := { show | up | down | add | edit | modify | delete | reload | load }

  示例: nmcli general status 状态显示

  modify: 改文件

  reload: 重新加载

  load: 加载

  show: 显示所有网络连接的属性信息

  up|down: 启动或禁用指定的网络连接

  add: 添加新的网络连接

  autoconnect yes|no: 是否自动启动此连接, 在配置文件中添加ONBOOT=yes|no;
  ifname IF_NAME: 指定要创建连接的目标网络接口设备名称;

  con-name CON_NAME: 为指定的网络接口设备创建一个连接名称;
  type TYPE: 指定网络设备的接口类型;

  示例:

  # nmcli connection add sutoconnect yes ifname eno67109432 con-name eno666 type ethernet

  delete: 删除指定的网络连接

  #nmcli connection delete CON_NAME

  示例:

  #nmcli connection delete eno666

  reload: 不重启网络接口, 但重新加载其配置文件中的配置信息;

  modify:

  modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>
  <setting>:

  802-3-ethernet.mtu

  connection.autoconnect

  ipv4.addresses

  ipv4.dns

  ipv4.gateway

  ipv4.method

  示例:

  # nmcli connection modify "系统\ eno50332208" ipv4.addresses 1.2.3.4/8 ipv4.dns 202.202.222.222 ipv4.gateway 1.1.1.1

  nmtui:
  nmtui - Text User Interface for controlling NetworkManager

  CentOS6:
  system-config-network[-tui]

  setup --> 网络配置

  注意: 上述命令虽然可以使用简单的图形界面, 但都是修改了配置文件, 所以需要重启网络接口才能使配置生效;

  网络组(Network Teaming)
  网络组: 是将多个网络接口设备聚合在一起的方法, 其目的是实现冗余容错以及提高可用性和吞吐量;

  网络组与以往的Bonding技术相比, 具有更好的性能以及更好的扩展性;

  在CentOS7中, 网络组是由内核中的一个内核驱动和一个名为teamd的守护进程来实现的;

  网络组可以实现多个工作模式, 被称为"运行器(runner)";

  broadcast

  roundrobin

  activebackup

  loadbalance

  lacp(IEEE 802.3ad, Link Aggregation Control Protocol, 链路聚合控制协议)

  网络组连接的特点:

  1.启动网络组接口并不会自动启动网络组中的其他port接口;
  2.启动网络组终端port接口, 也不会自动启动网路组接口;

  3.禁用网络组接口, 则会立即禁用网络组中的port接口;

  4.对于没有port接口的网络接口而言, 只能配置静态IP地址, 不能设置从DHCP获取; 如果设置了, 网络组接口就会一直等待port接口的加入;

  创建网络组接口的方法:

  nmcli connection add type team con-name TEAM_COM_NAME ifname IF_NAME config JSON
  JSON是用来指定runner的方式, 其格式:

  '{"runner": {"name": "METHOD"}}'

  示例:

  # nmcli connectin add type team con-name class17 ifname class17config '{"runner": {"name": "loadbalance"}}'
  # nmcli connection modify class17 ipv4.addresses 172.16.203.205/16

  # nmcli connection modify class17 ipv4.method manual

  创建port接口

  nmcli connection add type team-slave [con-name CON_NAME] ifname IF_NAME master TEAM_NAME

  注意: 如果不指定con-name, 则默认的con-name为team-slave-IF_NAME

  示例:

  # nmcli connectin add type team-slave con-name eno67109432 ifname eno67109432 master class17

  # nmcli connectin up class17

  # nmcli connectin up eno67109432

  # nmcli device disconnect eno67109432

  创建网络组也可以直接改对应的连接的配置文件:
  网络组接口:

  DEVICE=class17

  TEAM_CONFIG="{\"runner\": {\"name\": \"activebackup\"}}"

  DEVICETYPE=Team

  BOOTPRORO=noe

  NAME=class17

  ONBOOT=yes

  IPADDR=172.16.203.205

  PREFIX=16

  port接口:
  NAME=team-slave-eno33554984

  DEVICE=eno33554984

  ONBOOT=yes

  TEAM_MASTER=class17

  DEVICETYPE=TeamPort
进程管理

  在进程管理中, 经常会需要进行保存现场和恢复现场

  保存现场: 将数据和状态保存

  恢复现场: 将数据和状态恢复

  在linux中进程和线程基本无差别

  在windows中划分明显, 一个CPU只能执行一个进程;

  写时复制: 即在数据发生改变时, 对数据进行复制;

  所谓进程: process, 一个活动的程序实体的副本;

  生命周期可能包含一个或多个执行流;
  创建进程:

  每个进程的组织结构是一致的;

  内核在正常启动并且全面接管硬件资源之后, 会创建一个Init的进程; 而这个名叫init的进程负责用户空间的进程管理;
  CentOS5及以前: SysV Init, Classic Init

  有缺陷: 在启动系统时, Init通过写脚本的方式来创建各个子进程; 利用shell来实现, 因此其执行速度非常慢; 导致系统的启动速度和进程的创建速度都非常慢;

  CentOS6: upstart, 由Ubuntu研发的新型的Init进程; 可以并行的启动某些有关联的服务进程; 在创建进程的时候, 可以多创建进程; 如果有多个CPU或这个多颗CPU核心的话, 其进程的创建速度会有比较明显的变化; 第一个进程名称仍然是init;
  CentOS7: Systemd(系统的守护神), 参考了MAC OS的启动逻辑开发的一款新款的init程序; 其可以自身独立完成整个操作系统的启动工作; 也就是说, 在开机并加载内核之后, 只需要启动一个systemd进程就可以将其他各服务进程启动起来, 从而引导整个系统启动;

  除了init进程之外, 其他的各个进程都是由其父进程创建的;

  由fork()系统调用来实现的;

  每个父进程通过fork()系统调用, 复制自身的数据给子进程使用; 这种复制方式不是立即复制, 而是写时复制(CoW);

  终止进程:

  任何父进程创建的子进程都必须由父进程亲自销毁;

  任何的进程的父子关系都保存在task struct中;

  进程优先级:

  0-139个等级;

  0保留没用

  实则1-139

  1-99: 实时优先级, 数字越大优先级越高; 在系统启动时启动的进程;

  100-139: 静态优先级, 数字越小优先级越高;

  在用户执行某些应用程序的时候启动的进程;

  nice值:

  -20~19: 默认的nice值0;

  只有管理员才能使用负整数的nice值, 以提升进程的优先级;

  而普通用户只能使用正整数的nice值, 以降低进程的优先级;

  划分了140个进程队列;

  Big O标准:

  O(1), O(logN), O(N), O(N^2), O(2^N)

  进程的类型:

  按照进程的启动方式:

  守护进程:

  Daemon, 通常是在系统引导的过程被启动的, 与任何的终端无关; 也可以通过终端启动;

  用户进程:

  用户登录到系统之后, 通过终端启动的进程;

  按照进程的运行位置:

  前台进程:

  在进程启动之后, 进程一直占用标准输出或者标准输入或者同时占用标准输出和标准输入;

  后台进程:

  在进程启动之后, 进程不占用标准输出和标准输入;

  按照进程对于资源消耗:

  CPU-Bond: 非交互式的进程;

  IO-Bond: 编辑器等各种交互式进程;

  Linux系统上与进程有关的命令(查看命令和管理类命令):

  pstree, ps, pidof, pgrep, pkill, top, htop, glances, dstat, pmap, vmstat, bg, fg, jobs, kill, killall, nohup, nice, renice, ......

  pstree:

  pstree - display a tree of processes

  ps

  ps - report a snapshot of the current pocesses.

  ps [options]

  1. UNIX options, which may be grouped and must be preceded by a dash.

  2. BSD options, which may be grouped and must not be used with a dash.

  3. GNU long options, which are preceded by two dashes.

  常用选项:

  BSD风格的选项:

  a: 显示所有与终端相关的进程;

  x: 显示所有与终端无关的进程;

  u: 显示发起进程的用户的账户名称;

  常用的选项组合之一: aux
  ps aux命令显示的结果中各字段的含义:

  USER: 进程的所有者

  PID: 进程标识符

  %CPU: 进程占用的CPU处理时间的百分比;

  %MEM: 进程占用的物理内存的百分比;

  VSZ: 虚拟内存集(可交换内存集)

  RSS: 常驻内存集

  TTY: 进程与哪个终端相关; ? 表示与终端无关

  STAT

  R: running, 正在运行的进程;

  S: interuptible sleeping, 可中断的睡眠状态;
  D: uninteruptible sleeping, 不可中断的睡眠状态; Disk Block;

  T: Trace/STOPPED, 被跟踪/已停止; (通常是子进程在等待父进程将其杀死)

  Z: Zombie, 僵死态;

  +: 前台进程

  l: 包含多线程的进程

  <: 高优先级进程

  N: 低优先级进程

  s: session leader, 由子进程的父进程;
  START: 进程开始执行的时候时间戳

  TIME: 进程累计的CPU占用时间

  COMMAND: 启动进程的命令行参数

  UNIX风格的选项:

  -e: 显示所有进程;

  -f: 显示完整格式的进程信息

  -F: 显示完整格式的进程信息, 与-f几乎相同;

  常用的选项组合之二:  -ef

  PPID: 父进程PID

  C: 表示进程占用的CPU时间的百分比

  常用的选项组合之二: -eF

  SZ: 虚拟内存集

  RSS: 常驻内存集

  PSR: 表示此进程在哪个CPU核心上运行;

  -H: 以层级结构显示进程的父子关系;

  常用的选项组合之四: -eFH
  o|-o field1, field2, ...: 以自定义字段的方式显示进程相关信息;

  field: pid, ppid, ni, rtprio, psr, pcpu, stat, comm, user, tty, vsz, rss, ......

  常用的选项组合之五: -eo | axo field1, field2, ...

  pgrep, pkill:
  pgrep, pkill - look up or signal  processes based on name and other attributes

  根据进程名称或其他属性查看进行或向进程发送信号;

  pgrep [options] pattern

  pkill [options] pattern

  常用选项:

  -u uuid: 显示进程的有效用户;

  -U uid: 显示进程的真实用户;

  -t TERM: 显示指定的终端相关的进程;

  -l: 显示进程名称;

  -a: 显示进程的完整的命令行参数;

  pidof:
  显示指定进程名称对应的进程ID;

  top:
  top - display Linux processes

  top首部:

  第一行: uptime信息:
  当前系统时间

  系统的运行时长

  当前登录系统的用户总数

  过去1分钟, 5分钟, 15分钟的在CPU上等待运行的进程队列的长度;

  第二行:

  系统中运行的进程总数;

  正在运行的进程数;

  处于睡眠状态的进程数

  已停止的进程数

  僵死态的进程数

  第三行: CPU时间占用百分比

  us: user space, 用户空间的进程占用的CPU时间的百分比

  sy: system, 内核空间的内核进程占用的CPU时间的百分比

  ni: nice, 使用nice值调整了进程优先级之后额外多占用的CPU时间百分比;

  id: idle, CPU空闲时间的百分比

  wa: waiting, 等待IO完成所消耗的CPU时间的百分比

  hi: hardware interupting, 处理硬件中断时间所消耗的CPU时间的百分比;

  si: software interupting, 处理软件中断时间所消耗的CPU时间的百分比;

  st: stolen, 被虚拟化程序等偷走的CPU时间的百分比

  第四行: 以KB为单位显示物理内存空间的使用情况;
  total: 物理内存空间的总大小

  free: 空闲的物理内存空间大小

  userd: 已经被使用的物理内存空间大小

  buffer/cache: 缓冲区和缓冲区消耗的物理内存空间大小

  auail mem: 真正可用的内存空间大小;

  第五行: 以KB为单位显示swap空间的使用情况

  交互式命令:

  1: (数字) 显示或隐藏CPU核心信息

  P: 根据CPU占用百分比进行排序

  M: 根据物理内存占用百分比进行排序

  T: 根据累计CPU占用时间进行排序

  l: (字母)关闭或显示uptime信息

  t: 关闭或显示第二, 第三行信息

  m: 关闭或显示第四, 第五行信息

  q: 退出top交互模式

  s: 修改top的刷新时间间隔

  k: 终止某个指定PID的进程的运行
  常用的选项:

  -d #: 指定top刷新的时间间隔, 默认是3秒;

  -b: 按批次显示进程信息

  -n #: 通常与-b选项一起使用, 表示显示多少批;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450191-1-1.html 上篇帖子: 克隆操作系统(CentOS) 下篇帖子: centos7.1安装nfs
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表