CentOS 7基础操作02_优化Linux操作系统中的服务

1、实验环境

        公司在文件服务器中新安装了CentOS系统.由于默认启动的服务程序较多,系统运行缓慢。现需要对系绞服务进行适当优化,减少一些不必要的自启动服务.并设置系统在开机后直接进入字符模式。

2、需求描述

        根据实际使用需求对CentOS 7操作系统中的系统服务进行优化

3、推荐步骤

  • 设置Linux操作系统每次开机后自动进入字符模式界面
  • 使用ntsysv工具同时调整2.3.4.5运行级别中的服务状态,关闭下列服务:atd、bluetooth、mdmonitor、rhnsd、rpcgssd、postfix。
  • 使用systemctl工具调整个别服务的启动状态。
  • 将netwark服务、postfix服务在当前的target中设置为启动状态。
  • 查看当前系统中内存占用情况.重启并登录到字符模式,再次查看内存占用情况。
  • 使用init命令切换到图形模式,再次确认运行目标并查看内存占用情况,比较优化服务前后及在不同运行级别中的差异。

4、实验步骤

4.1、查看系统target

        早期Linux操作系统中的SysVinit 机制.默认包括七种不同的服务搭配方式,其中每一种搭配方式称为运行级别.类似于 Windows系统中的正常启动、安全模式、不带网络连接的安全模式等,这些运行级别分别使用数字0,1,….6来表示。为了向下兼容SysVinit系统,Systend使用了相应的target (目标)模拟了SysVinit的运行级别.表1-2中列出了运行级别所对应的target,并说明了各种target的含义及用途。

表1-2                 Systemd的目标与SysVinit的运行级别

运行级别Systemd的target说明
0target关机状态,使用该级别时将会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2multi-user.target用户定义/域特定运行级别。默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target用户定义/域特定运行级别。默认等同于3
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

        明确当前系统所在的 target 将有助于管理员排除一些应用故障。若未能确知当前所处的目标,可以直接执行“runlevel”命令进行查询,显示结果中的两个字符分别表示切换前的目标,当前的目标,若之前尚未切换过运行级别.则第1列将显示”N“,命令如下:

[root@blab ~]# runlevel 
N 5

        若用户想查看系统启动时默认运行的target,可以执行“systemctl get-default”命令以显示系统默认的 target,命令如下:

[root@blab ~]# systemctl get-default 
graphical.target

4.2、切换系统的target

        当用户需要将系统转换为其他的target时,可以通过传统的init程序进行.只要使用与运行级别相对应的数字(0~6)作为命令参数即可,或者使用systemctl命令进行目标切换。例如.为了节省系统资源,将系统运行的target由图形模式(5)切换为字符模式(3),可以执行“init 3"或“systematlisolate multi-user , target命令,命令如下:

[root@blab ~]# init 3
[root@blab ~]# runlevel 
5 3

或者

[root@blab ~]# systemctl isolate multi-user.target 

        将系统切换到字符模式以后,图形桌面环境不再可用。这时按Alt+F7组合键也无法恢复图形桌面环境。需要再次使用图形桌面时,可以执行“init5”或者“systemctl isolate graphical target”命令切换回去。


4.3、使用ntsysv工具

        Linux操作系统在每次开机后会进入默认的systemd运行目标(如字符模式或图形模式).并运行该目标中默认设为启动的各种系统服务。若要禁止某些系统服务自动运行,可以使用ntsysv或者systemctl工具进行优化。

4.3.1、使用ntsysv工具

        ntsysv 工具可以在字符模式中运行,为用户提供一个仿图形的交互式操作界面,专门用于集中配置各种系统服务的启动状态。当需要同时设置多个服务的启动状态时.使用ntsysv工具会非常方便。

        单独执行"ntsysv”命令时仅用于管理当前运行目标中的服务;通过“--level”选项可以对指定运行目标(级别)中的服务进行管理。例如,执行“ntsysv --level 35”命令可以打开 ntsysv管理程序,如图1.11所示,同时对运行目标3.5中的各种系统服务的默认启动状态进行调整。

[root@blab ~]# ntsysv 

        操作时按↑.↓方向键来选择不同的系统服务.按Space(空格)键设置服务的默认启动状态(“[*]”表示启动.“[]”表示关闭)。如果要查看所选定服务的说明信息,按F1键可以获取帮助.


4.4、使用systemctl工具调整个别服务的启动状态

        systemctl工具与ntsysv的功能类似,但是systemctl不提供交互式的操作界面,它用于查询或设置系统服务的默认启动状态。当需要设置某一个服务在当前运行目标中的默认启动状态时,使用systemctl工具会更有效率。使用 systemctl工具控制服务开机启停的命令格式如下:

systemctl      [控制选项]        [服务名称]

常用的选项有以后几种:

  • enable:开机自动启动
  • disable:开机自动关闭
  • is-enable:查看开机启动状态
  • start(启动):运行指定的系统服务程序,实现服务功能
  • stop(停止):终止指定的系统服务程序,关闭相应的功能
  • restart(重启):先退出,再重新运行指定的系统服务程序
  • reload(重载):不退出服务程序,只刷新配置。在某些服务中与restart的操作相同
  • status(查看状态):查看指定的系统服务的运行状态及相关信息。

        例如.执行以下操作即可配置apache服务开机自动启动或关闭并查看开机启动状态。当 apache服务设置为开机自动启动时.在/etc/systemd/system/multi—user, target , wants/目录下面会出现一个文件名为 httpd,service的软连接文件.当apache 服务设置为开机自动关闭时,在/etc/systend/system /multi-user . target , wants/目录下面的httpd , service软连接文件就会被删除。

[root@blab ~]# systemctl enable httpd.service     //apache服务设置为开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@blab ~]# systemctl is-enabled httpd.service   
enabled
[root@blab ~]# systemctl disable httpd.service        //apache服务设置为开机关闭
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
[root@blab ~]# 
[root@blab ~]# systemctl is-enabled httpd.service 
disabled
[root@blab ~]# 

        在当前系统下执行”systemctl list-units --type=service“命令可以查看当前系统中所有已激活的系统服务,命令如下

[root@blab ~]# systemctl list-units --type=service      //查看所有以及激活的系统服务
UNIT                               LOAD   ACTIVE SUB     DESCRIPTION
abrt-ccpp.service                  loaded active exited  Install ABRT coredump hook
abrt-oops.service                  loaded active running ABRT kernel log watcher
abrt-xorg.service                  loaded active running ABRT Xorg log watcher
abrtd.service                      loaded active running ABRT Automated Bug Reporting Tool
atd.service                        loaded active running Job spooling tools

        例如,执行如下的“”操作可以启动尚未运行的postfix服务

[root@blab ~]# systemctl start postfix.service

        若要查看指定postfix服务的运行状态,只需将上述命令中的“start”改为“status”即可,若要停止 postfix服务,只需将“start”改为“stop”即可,具体命令如下:

[root@blab ~]# systemctl status postfix.service

[root@blab ~]# systemctl stop postfix.service       //停止postfix服务
[root@blab ~]# systemctl status postfix.service

        控制类型^restart”用在需要释放旧的资源全部从头开始的情况,它会先关闭相应的服务程序,然后重新运行.例如.当在网卡的配置文件中设置了新的IP地址以后,为了激活新的P地址,可以重新启动名称为network的系统服务,命令如下:

[root@blab ~]# systemctl restart network.service 

        对于在实际生产环境中运行的服务器,不要轻易执行stop或restart操作.以免造成客户端访问中断,带来不必要的损失。若只是要为系统服务启用新的配置,可以采用相对温和一些的reload参数重新加载配置,而不是生硬地执行“restart”。例如,对正在为用户提供Web访问的htpd 服务当需要应用新的配置时,建议执行“systemctl reload httpd.service”命令来重新载入配置,而不是执行“systemctl restart httpd.service
 

[root@blab ~]# systemctl reload httpd.service

4.5、查看当前系统中内存占用情况,重启并登录到字符模式,再次查看内存占用情况。

[root@blab ~]# cat /proc/meminfo | grep Mem
MemTotal:        2028112 kB
MemFree:          455940 kB
MemAvailable:    1593444 kB

        通过切换target的操作,还可以实现两个特殊的功能,那就是关机和重启。运行级别0.6分别对应关机、重启这两个特殊模式,因此只要执行“init0"与“init 6”命令就可以实现相应的关机.重启操作了,命令如下:

[root@blab ~]# init 0         //关闭当前系统
[root@blab ~]# init 6         //重启当前系统

4.6、使用init命令切换到图形模式,再次确认运行目标并查看内存占用情况,比较优化服务前后及在不同运行级别中的差异。

[root@blab ~]# init 3

查看内存状态

[root@blab ~]# cat /proc/meminfo | grep Mem
MemTotal:        2028112 kB
MemFree:         1036824 kB
MemAvailable:    1599044 kB

内存使用量相对图形化界面少了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postgressql——PGPROC XLOG(6)

PGPROC相关结构 在共享内存中,核心数据结构围绕PROC_HDR指向的两个list:PROC和XACT PRCO内存连续,维护链表结构方便申请释放,对应每个后台服务进程,PID为OS标识、PGPROCNO为内部标识 XACT内存连续,维护快照需要的xmin和xid,XACT从PROC拆出来是为了更高的cache line命中…

IBM开源Granite Code模型,多尺寸可选,支持多种代码任务,性能媲美 CodeLlama

前言 近年来,大型语言模型(LLM)在代码领域展现出惊人的潜力,为软件开发流程带来了革命性的改变。代码 LLM 不仅能够生成高质量代码,还能帮助程序员修复错误、解释代码、编写文档等等,极大地提高了软件开发…

WebRTC 在 iOS 端实现一对一通信

WebRTC 在 iOS 端实现一对一通信 WebRTC 在 iOS 端实现一对一通信申请权限引入 WebRTC 库构造 RTCPeerConnectionFactory创建音视频源视频采集本地视频预览建立信令系统创建 RCTPeerConnection远端视频渲染参考 WebRTC 在 iOS 端实现一对一通信 在 iOS 端,我们将按…

Python高级编程:并发编程与异步编程

Python高级编程:并发编程与异步编程 在前几篇文章中,我们介绍了Python的基础语法、面向对象编程、标准库以及第三方库的使用。在这篇文章中,我们将深入探讨Python中的并发编程和异步编程。这些技术对于提高程序性能和响应速度至关重要,特别是在处理I/O密集型任务时。通过本…

【kubernetes】探索k8s集群的存储卷、pvc和pv

目录 一、emptyDir存储卷 1.1 特点 1.2 用途 1.3部署 二、hostPath存储卷 2.1部署 2.1.1在 node01 节点上创建挂载目录 2.1.2在 node02 节点上创建挂载目录 2.1.3创建 Pod 资源 2.1.4访问测试 2.2 特点 2.3 用途 三、nfs共享存储卷 3.1特点 3.2用途 3.3部署 …

token 无感刷新

什么是 token 无感刷新?为什么需要 token 无感刷新?让我们想象一下有这么个场景:你登录一个系统成功后,玩了 10 分钟,发现登录失效了,又要你重新登录,然后又过 10 分钟,又失效了&…

Python Flask框架(五)数据库

数据库是大多数动态Web程序的基础设施,本章主要介绍如何给Flask程序添加数据库支持,具体来说就是在Python中使用DBMS来对数据库进行管理和操作。 使用ORM不光可以解决SQL注入的问题,而且它为不同的DBMS提供统一的Python接口库,使…

芝浦工业大学利用 NetApp 提供的多层 AI 驱动型安全解决方案抵御网络攻击

成效 10,000 名学生和教职工受到现代存储基础架构的保护NetApp AI 技术可自动检测异常并即时创建数据备份借助 NetApp 重复数据删除和数据压缩将数据缩减了 60% NETAPP 打造现代化的数据保护 众所周知,教育机构很难防范网络攻击。学生、员工和教职工都需要使用自己…

全面解析API网关:动态路由、协议转换及安全防护策略

1.API网关简介与架构演进 1.1. 什么是API网关 API 网关是一种服务器,是多个客户端应用程序至后端服务数据流的中间层。它作为单一的接入点,处理所有应用程序之间的请求通信。API 网关的主要功能包括请求路由、API 组合、策略执行和转换请求和响应。 1…

Web程序设计-实验05 DOM与BOM编程

题目 【实验主题】 影视网站后台影视记录管理页设计 【实验任务】 1、浏览并分析多个网站后台的列表页面、编辑页面(详见参考资源,建议自行搜索更多后台页面)的主要元素构成和版面设计,借鉴并构思预期效果。 2、新建 index.h…

正则匹配优化:匹配排除多个字符串的其他字符串

(^entity|^with|...)\w优化 (?!entity|with|has|index|associations|input)\w(?!): 匹配排除项 效果 继续优化 匹配会过滤掉带有关键字的字段,在过滤的时候是可以加上尾部结束匹配符的 效果:

thinkphp6 自定义的查询构造器类

前景需求&#xff1a;在查询的 时候我们经常会有一些通用的&#xff0c;查询条件&#xff0c;但是又不想每次都填写一遍条件&#xff0c;这个时候就需要重写查询类&#xff08;Query&#xff09; 我目前使用的thinkphp版本是6.1 首先自定义CustomQuery类继承于Query <?p…

【C语言回顾】预处理

前言1. 简单概要2. 预处理命令讲解结语 上期回顾: 【C语言回顾】编译和链接 个人主页&#xff1a;C_GUIQU 归属专栏&#xff1a;【C语言学习】 前言 各位小伙伴大家好&#xff01;上期小编给大家讲解了C语言中的编译和链接&#xff0c;接下来我们讲解一下预处理&#xff01; …

【香橙派 AIpro】新手保姆级开箱教程:Linux镜像+vscode远程连接

香橙派 AIpro 开发板 AI 应用部署测评 写在最前面一、开发板概述官方资料试用印象适用场景 二、详细开发前准备步骤1. 环境准备2. 环境搭建3. vscode安装ssh插件4. 香橙派 AIpro 添加连接配置5. 连接香橙派 AIpro6. SSH配置 二、详细开发步骤1. 登录 juypter lab2. 样例运行3. …

MySQL主从搭建--保姆级教学

MYSQL主从搭建步骤 主节点 # 进入目录 cd /opt# 下载安装包 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz# 解压 tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz# 拷贝到/usr/local mv /opt/mysql-8.0.20-linux-g…

【IDEA】-使用IDEA查看类之间的依赖关系

1、父子类的继承、实现关系 1.1、使用CTRL Alt U 选择 java class 依据光标实际指向的类位置 用实心箭头表示泛化关系 是一种继承的关系&#xff0c;指向父类 可以提前设置需要显示的类的属性、方法等信息 快捷键 Ctrl Alt S &#xff0c;然后搜索 Diagrams 1.2、使用…

python知识继续学习

1、计算机表示小数是有误差的&#xff0c;下面的5就是误差 2、在python中&#xff0c;所有的非0数字都是True&#xff0c;零是False。所有的非空字符串都是True&#xff0c;空字符串是False。空列表是False。在python的基本数据类型中&#xff0c;表示空的东西都是False&#x…

数据结构(三)循环链表 约瑟夫环

文章目录 一、循环链表&#xff08;一&#xff09;概念&#xff08;二&#xff09;示意图&#xff08;三&#xff09;操作1. 创建循环链表&#xff08;1&#xff09;函数声明&#xff08;2&#xff09;注意点&#xff08;3&#xff09;代码实现 2. 插入&#xff08;头插&#x…

【linux】运维-基础知识-认知hahoop周边

1. HDFS HDFS&#xff08;Hadoop Distributed File System&#xff09;–Hadoop分布式文件存储系统 源自于Google的GFS论文&#xff0c;HDFS是GFS的克隆版 HDFS是Hadoop中数据存储和管理的基础 他是一个高容错的系统&#xff0c;能够自动解决硬件故障&#xff0c;eg&#xff1a…

【Linux 网络编程】网络的背景、协议的分层知识!

文章目录 1. 计算机网络背景2. 认识 "协议"3. 协议分层 1. 计算机网络背景 网络互联: 多台计算机连接在一起, 完成数据共享; &#x1f34e;局域网&#xff08;LAN----Local Area Network&#xff09;: 计算机数量更多了, 通过交换机和路由器连接。 &#x1f34e; 广…