当前位置:首页 » 操作系统 » linux系统服务管理

linux系统服务管理

发布时间: 2022-12-08 16:28:13

‘壹’ linux服务管理(如何关闭或禁用不需要的服务

在安装Linux操作系统时,一些不必要的数据包和应用程序会在用户不注意的情况下自动安装。在本文中,我们将讨论如何将Linux系统中一些不必要的应用程序和服务禁用,以保护你的系统资源。

首先让我们来看看系统中正在运行哪些服务。使用以下命令:

输出结果

现在让我们使用下面的netstat命令快速浏览接受连接的进程(端口)。

输出结果

从上面的输出结果中,你会发现一些不需要在服务器上运行的应用程序,如:

1. smbd and nmbd

smbd和nmbd是Samba的后台进程。你真的需要在Windows或其他机器上输出smb分享吗?如果不是,为什么运行这些进程呢?

你可以在下一次机器启动时关闭开机启动设置,这样就能安全地关闭或禁用这些进程。

2. Telnet

你需要通过互联网或者局域网进行适合文本形式的通讯吗?如果不是的话,在机器启动时关闭这个进程吧。

3. rlogin

你需要通过网络登录到另一个主机吗?如果不需要的话,那么在机器启动时关闭这个进程的开启启动功能。

4. rexec

远程进程执行rexec允许你在远程计算机上执行shell命令。如果你不需要在远程机器上执行shell命令,请关闭该进程。

5. FTP

你需要将一个主机上的文件通过网络转移到另一个主机上吗?如果不需要,你可以停止FTP服务。

6. automount

你需要自动挂载不同的文件系统,弹出网络文件系统吗?如果不是,为什么要运行这个进程,为什么要让这个应用程序占用你的资源呢?关闭它的自动启动功能吧。

7. named

你需要运行域名服务器(DNS)吗?如果不是,你应该关掉这个进程,释放你的资源。先关闭正在运行的进程,然后关闭开机启动设置。

8. lpd

lpd是打印机的后台进程。如果你不需要从服务器打印,该进程会消耗你的系统资源。

9. Inetd

你运行inetd服务吗?如果你正在运行独立应用程序,如ssh,ssh会使用其他独立的应用程序,比如Mysql、Apache等。如果你不需要inetd,最后在下次自动启动时关闭掉。

10. portmap

Portmap是一个开放网络计算远程过程调用(ONC RPC),启用后台进程rpc.portmap和rpcbind。如果这些进行运行,意味着你正在运行NFS服务器。如果你没有注意到NFS服务器运行的话,意味着你的系统资源正在消耗。

如何在Linux系统中杀死一个进程

可以使用“Kill PID”命令杀死一个在Linux中运行的进程。但是在运行Kill命令之前,我们必须了解进程的PID。例如,我想找“cupsd”进程的PID。

那么“cupsd”进程的PID是1511。运行下面的命令杀死该PID。

如何禁用Linux服务

对于红帽发行版如Fedora和CentOS,利用“chkconfig”脚本来启用和禁用Linux系统中运行的服务。

例如,在系统启动时禁用Apache web服务器。

对于基于Den的发行版如Ubuntu、Linux Mint和其他Debian发行版,使用一个叫做update-rc.d的脚本。

例如,在系统启用时使用下面的命令禁用Apache服务。这里“- f”选项代表强制性。

做了这些变更之后,系统下次启动时不会再运行这些没有必要的进程,从而为我们节约了系统资源。服务器将会更实用、快速、安全。

‘贰’ 如何在Linux系统上管理Systemd服务

(1) 什么是单元 在RHEL7之前,服务管理是分布式的被SysV init或UpStart通过/etc/rc.d/init.d下的脚本管理。这些脚本是经典的Bash脚本,允许管理员控制服务的状态。在RHEL7中,这些脚本被服务单元文件替换。 在systemd中,服务、挂载等资源统一被称为单元,所以systemd中有许多单元类型,服务单元文件的扩展名是.service,同脚本的功能相似。例如有查看、启动、停止、重启、启用或者禁止服务的参数。 systemd单元文件放置位置: /usr/lib/systemd/system/systemd默认单元文件安装目录 /run/systemd/systemsystemdsystemd单元运行时创建,这个目录优先于按照目录 /etc/systemd/system系统管理员创建和管理的单元目录,优先级最高。 (2)systemd的服务管理 使用systemcl命令可以控制服务,service命令和chkconfig命令依然可以使用,但是主要是出于兼容的原因,应该尽量避免使用。 使用systemctl命令的时候,服务名字的扩展名可以写全,例如: 代码如下: systemctl stop bluuetooth.service 也可以忽略,例如: 代码如下: systemctl stop bluetooth systemctl常用命令: 启动服务 代码如下: systemctl start name.service 关闭服务 代码如下: systemctl stop name.service 重启服务 代码如下: systemctl restar tname.service 仅当服务运行的时候,重启服务 代码如下: systemctl try-restart name.service 重新加载服务配置文件 代码如下: systemctl relaod name.service 检查服务运作状态 代码如下: systemctl status name.service 或者 代码如下: systemctl is-active name.service 展示所有服务状态详细信息 复制代码 代码如下: systemctl list-units--type service --all 允许服务开机启动 代码如下: systemctl enable name.service 禁止服务开机启动 代码如下: systemclt disable name.service 检查服务开机启动状态 代码如下: systemctl status name.service 或者 代码如下: systemctl is-enabled name.service 列出所有服务并且检查是否开机启动 代码如下: systemctl list-unit-files --type service (3)服务详细信息查看 使用如下命令列出服务: 代码如下: systemctl list-units --type service 默认只列出处于激活状态的服务,如果希望看到所有的服务,使用--all或-a参数: 代码如下: systemctl list-units--type service --all 有时候希望看到所以可以设置开机启动的服务,使用如下命令: 代码如下: systemctl list-unit-files --type service 查看服务详细信息,使用如下命令: 代码如下: systemctl status name.service 服务信息关键词解释 Loaded服务已经被加载,显示单元文件绝对路径,标志单元文件可用。 Active服务已经被运行,并且有启动时间信息。 Main PID与进程名字一致的PID,主进程PID。 Status服务的附件信息。 Process相关进程的附件信息。 CGroup进程的CGroup信息。

‘叁’ Linux 文件系统管理

3.1Linux 文件系统类型

不同的操作系统使用不同类型的文件系统,为了与其他的操作系统兼容,以相互交换数据,

通常,每种操作系统都支持多种类型的文件系统。

Linux 中保存数据的磁盘分区通常采用EXT2/EXT3 文件系统,而实现虚拟存储的swap 分区

采用swap 文件系统,同时Linux 内核支持十多种不同的文件系统。

1. EXT2 和EXT3 文件系统

EXT(Extended File System,扩展文件系统)是专为Linux 设计的文件系统。在Linux 发展

早起,起到重要中用,但在稳定性、速度和兼容性方面存在缺陷。

EXT2 是为解决EXT 系统存在的缺陷而设计的可扩展、高性能的文件系统。

EXT3 是EXT2 的增强版本,在EXT2 的基础上,增加了文件系统的日志管理功能。

EXT3 文件系统具有的特点:

(1) 高效性:当系统因为异常断电或系统崩溃,重新启动时不需要检查文件系统的一致

性,只需要根据文件系统的日志,快速检测并恢复文件系统到正常状态。

(2) 数据的完整性:可以保持数据域文件系统状态的高度一致性,避免意外关机对文件

系统造成的破坏。

(3) 数据的存取速度更快:EXT3 文件系统的日志功能对磁盘驱动器的读/写进行优化,

使读/写系统的速度更快。

(4) 数据易于转换

2. swap 文件系统

用于Linux 的交换分区。在Linux 中,使用整个交换分区来提供虚拟内存。

3. VFAT 文件系统

VFAT 是Linux 对DOS、Windows 系统下的FAT 文件系统的统称。

4. NFS 文件系统

NFS 即网络文件系统,用在UNIX 或Linux 系统间通过网络进行文件共享。

5. SMB 文件系统

SMB 是Samba 的缩写,是另一种网络文件系统,用于在Windows 和Linux 系统之间共享文

件和打印机。

6. ISO9660 文件系统

CD-ROM使用的标准文件系统。

此外,Linux 支持的文件系统还有minix、msdos、ncpfs、hpfs、umsdos 等。

3.2 Linux 的目录和文件

1.Linux 系统的目录结构

Linux 文件系统由文件和目录组成,文件是专门用来存储数据的对象,目录是一种用来组织

文件和其他目录的容器。Linux 和DOS、Windows 系统一样,使用树形目录结构来组织和管

理文件。

1. / 文件系统的入口,最高一级目录;

2. /bin 基础系统所需要的命令位于此目录,是最小系统所需要的命令,如:ls, cp, mkdir等。

这个目录中的文件都是可执行的,一般的用户都可以使用。

3. /boot 包含Linux内核及系统引导程序所需要的文件,比如vmlinuz initrd.img文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;

4. /dev 设备驱动程序文件存储目录,比如声卡、磁盘等,是Linux文件系统的一个闪亮的特性-所有对象都是文件或目录。仔细观察这个目录你会发现hda1, hda2等,它们代表系统主硬盘的不同分区。

5. /etc 存放系统程序或者一般工具的配置文件。

如安装了apache2之后,配置文件在/etc/apache2/目录下。

/etc/init.d这个目录是用来存放系统或服务器以System V模式启动的脚本,这在以System V模式启动或初始化的系统中常见。

6. /home 普通用户默认存放目录Linux是多用户环境,所以每一个用户都有一个只有自己可以访问的目录(当然管理员也可以访问)。它们以/home/username的方式存在。这个目录也保存一些应用对于这个用户的配置,比如IRC, X等。

7. /lib 库文件存放目录这里包含了系统程序所需要的所有共享库文件,类似于Windows的共享库DLL文件。

8. /var 这个目录的内容是经常变动,因为存储的文件,如数据库,数据文件大小是在不断的增大。

/var/log这是用来存放系统日志的目录。

/var/www目录是定义Apache服务器站点存放目录;/var/lib用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地;

/var/log系统日志存放,分析日志要看这个目录的东西;

/var/spool打印机、邮件、代理服务器等假脱机目录;

9. /lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

Linux应该正确的关机。但有时你的系统也可能崩溃掉或突然断电使系统意外关机。那么启动的时候fsck将会进行长时间的文件系统检查。Fsck会检测并试图恢复所发现的'不正确的文件。被恢复的文件会放置在这个目录中。所恢复的文件也许并不完整或并不合理,但毕竟提供了一些恢复数据的机会。

10. /media 即插即用型存储设备的挂载点自动在这个目录下创建,比如USB盘系统自动挂载后,会在这个目录下产生一个目录 ;CDROM/DVD自动挂载后,也会在这个目录中创建一个目录,类似cdrom的目录。这个只有在最新的发行套件上才有. 10. /mnt /mnt这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。比如光驱可以挂载到/mnt/cdrom。

11. /opt 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过./configure --prefix=/opt/,将软件安装到opt目录。

这个目录包含所有默认系统安装之外的软件和添加的包。

12. /proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。

这是系统中极为特殊的一个目录,实际上任何分区上都不存在这个目录。它实际是个实时的、驻留在内存中的文件系统。

13. /root Linux超级权限用户root的家目录;

14. /sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令;

这个目录和

/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录是相似的; 我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。

15. /tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。

许多程序在这里建立lock文件和存储临时数据。有些系统会在启动或关机时清空此目录。

16. /usr 这个是系统存放程序的目录,比如命令、帮助文件等。

这个目录下有很多的文件和目录。

当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。

如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。

‘肆’ LINUX服务管理,系统启动时如何判断及开启服务,系统运行中,如何查询、关闭、开启服务

逐个解答。但根据问题间的关系,回答顺序和你提问的顺序有所不同。

=============================================
“请写出尽量多的方法,并说明方法的原理。”
---------------------------------------------

我用Everest Linux 0.6是Redhat系列的远方旁枝。源自Redhat的发行版有类似的服务管理方式。太多的方法没有用,一种基本方法再加两三种附加变体方法足矣。

=============================================
“如何关闭服务及如何手动开启服务”
---------------------------------------------

简而言之:
service [服务名] start
service [服务名] stop
细节见下。

以我的现状为例,所有的主要独立服务都在“/etc/rc.d/init.d”中有对应的控制脚本,能控制服务的启停、重启,甚至不重启而重新加载配置。当然,也可以自己制作自己的控制脚本。我自己制作了Apache、Tomcat、PostgreSQL和花生壳的控制脚本。

[root@TFW-EVL06-LT /]# ls -l /etc/rc.d/init.d/
总计 316
……
-rwxr-xr-x 1 root root 1773 2009-04-20 smb
……
-rwxr-xr-x 1 root root 3340 2008-12-06 sshd
……
lrwxrwxrwx 1 root root 66 2009-08-20 tfw_httpd -> /ext/prog/c/Apache/Httpd.EverestLinux-0.6-tb20090422/tfw/rc_script
lrwxrwxrwx 1 root root 61 2009-08-20 tfw_pgsql -> /ext/prog/m/PostgreSQL.Everest-Linux-0.6-tb0422/tfw_rc_script
lrwxrwxrwx 1 root root 32 2009-08-20 tfw_phlinux -> /usr/local/phlinux/tfw_rc_script
lrwxrwxrwx 1 root root 39 2009-08-20 tfw_tomcat -> /ext/prog/c/Apache/Tomcat/tfw/rc_script
……
-rwxr-xr-x 1 root root 2497 2008-12-06 xinetd
……
[root@TFW-EVL06-LT /]#

以此为例,可以用“service smbd start”来启动Windows网络邻居服务;用“service sshd stop”来关闭安全隧道登录服务;用“service tfw_pgsql reload”不重启地重新加载PostgreSQL配置;用“service tfw_phlinux restart”重新启动花生壳。

=============================================
“读哪个文件判断是否启动服务”
---------------------------------------------

没有简述,想了解请看完。

在“/etc/rc.d/rc[N].d”目录里存放着上述脚本的链接。“[N]”为0~6间的数字,对应系统运行级别。以运行级别3为例:

[root@TFW-EVL06-LT /]# ls -l /etc/rc.d/rc3.d/
总计 0
……
lrwxrwxrwx 1 root root 20 03-03 13:00 K04tfw_tomcat -> ../init.d/tfw_tomcat
……
lrwxrwxrwx 1 root root 14 2009-08-20 S55sshd -> ../init.d/sshd
……
[root@TFW-EVL06-LT /]#

这些链接有的以“K”开头,有的以“S”开头。

系统在切换都一个运行级别时,会首先检查以“K”开头的链接,按其后面两位数字所标明的顺序依次检查这些链接所对应的服务;如果开着就以“stop”参数调用服务控制脚本关闭此服务。

例子中“/etc/rc.d/rc3.d/K04tfw_tomcat”的含义即为“当系统切换到运行级别3时,检查一下Tomcat是否在运行;如果在运行,就用‘service tfw_tomcat stop’关掉Tomcat”。

在关完服务后,系统再根据数字依次检查以“S”开头的链接,如果对应的服务没有开启,就以“start”参数调用服务控制脚本开启此服务。

例子中“/etc/rc.d/rc3.d/S55sshd”的含义即为“当系统切换到运行级别3时,检查一下安全登录遂道是否在运行;如果没在运行,就用‘service sshd start’启动安全登录遂道”。

=============================================
“如何查询已经开启的服务”
---------------------------------------------

没有简述,想了解请看完。

[root@TFW-EVL06-LT /]# service network status
Coppied.
配置设备:
lo eth0 ppp0
当前的活跃设备:
lo eth0 ppp0
[root@TFW-EVL06-LT /]# service tfw_httpd status
Usage: /etc/init.d/tfw_httpd {start|stop|restart}
[root@TFW-EVL06-LT /]#

可以看到,有一些服务控制脚本支持“status”参数,可以用“service [服务名] status”来查看;还有一些服务控制脚本不支持“status”参数,此时就只能凭经验判断了。

=============================================
“可以用TELNET、FTP举例,我的RH系统内有XINETD,也希望讲解下”
---------------------------------------------

在Redhat风格的发行版中,Telnet和FTP一版不是独立服务,而是被“超级服务器”XINETD托管。

XINETD是一个独立服务,和前述服务无异。它的控制脚本是“/etc/rc.d/init.d/xinetd”。

=============================================
“读哪个文件来判断服务的设置”
---------------------------------------------

不同的独立服务一般都拥有自己的配置文件。

典型情况下,“/etc/samba/smb.conf”是Windows网络邻居服务的主要配置文件,“/etc/ssh/sshd_config”是安全隧道服务器端的主要配置文件。

在我的计算机上,“/ext/prog/c/Apache/Httpd.EverestLinux-0.6-tb20090422/conf/”下的文件就是Apache-Httpd服务的主要配置文件。

在我曾经用过的Redhat系发行版Magic Linux 2.0中,Telnet和FTP等非独立服务的端口等配置信息出现在XINETD的配置文件中;而我现在所用的发行版Everest Linux 0.6虽然仍是Redhat系,Telnet和FTP的端口信息已经移到其各自的配置文件中。

‘伍’ 如何在Linux系统上管理Systemd服务

检查你的Linux系统使是否使用Systemd服...
1

分析引导过程该systemd-analyze命令允...
2

查看UnitsSystemd用Units作为一个单元...
3

管理服务要查看启用和禁用服务的列表,...
4

该systemctl命令可以启动,停止或重新...
5

使用systemctl enable命令启动systemd...

‘陆’ 如何在Linux系统上管理Systemd服务

方法/步骤
1
检查你的Linux系统使是否使用Systemd服务
如果你的Linux发行版是否使用systemd还不能确定,打开一个终端窗口,运行以下命令。
这说明在Linux系统上你systemd的版本号:systemd
-version
2
分析引导过程
该systemd-analyze命令允许你查看你的启动过程中,信息等过了多长时间,哪些服务(和其他进程)增加了最多的时间来启动进程。
要查看一般启动过程中的信息,运行以下命令:
systemd-analyze
要查看每个进程所用的时间来启动,运行以下命令:systemd-analyze
blame
3
查看Units
Systemd用Units作为一个单元,它可以是服务(.service),挂载点(.mount),设备(.device),
同样systemctl命令管理所有这些类型的单位。要查看系统上所有可用的单元文件:systemctl
list-unit-files
要列出所有正在运行的单位:systemctl
list-units
4
管理服务
要查看启用和禁用服务的列表,您可以使用相同systemctl命令同上,但是它只列出存在的服务:systemctl
list-unit-files
–type=service
5
该systemctl命令可以启动,停止或重新启动服务。
你也可以告诉服务为“刷新”它的配置。
status命令是这里唯一的行动,将打印输出到终端。
其他命令会悄悄地生效。
systemctl
start
name.service
systemctl
stop
name.service
6
使用systemctl
enable命令启动systemd自动启动服务
systemctl
enable
name.service
systemctl
disable
name.service

‘柒’ Linux系统systemctl命令

最近用到了systemctl命令,顺便分享出来希望对用到的朋友有帮助。

systemctl是一个用于管理系统服务的命令,例如:启动服务、停止服务、重新服务等。它的用法主要有一下几种:

systemctl命令(管理系统服务命令)

|_restart:重启服务

|_start:启动服务

|_stop:停止服务

|_enable:开启服务开机自启

|_disable:关闭服务开机自启

|_status:查看服务状态

|_list-units --type=service:查看已启动服务列表

使用场景演示:查SSH服务是否启动

‘捌’ LINUX系统的内存管理知识详解

内存是Linux内核所管理的最重要的资源之一。内存管理系统是操作系统中最为重要的部分,因为系统的物理内存总是少于系统所需要的内存数量。虚拟内存就是为了克服这个矛盾而采用的策略。系统的虚拟内存通过在各个进程之间共享内存而使系统看起来有多于实际内存的内存容量。Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。以下就是我为大家整理到的详细LINUX系统内存管理的知识,欢迎大家阅读!!!

LINUX系统教程:内存管理的知识详解

一、内存使用情况监测

(1)实时监控内存使用情况

在命令行使用“Free”命令可以监控内存使用情况

代码如下:

#free

total used free shared buffers cached

Mem: 256024 192284 63740 0 10676 101004

-/+ buffers/cache: 80604 175420

Swap: 522072 0 522072

上面给出了一个256兆的RAM和512兆交换空间的系统情况。第三行输出(Mem:)显示物理内存。total列不显示核心使用的物理内存(通常大约1MB)。used列显示被使用的内存总额(第二行不计缓冲)。 free列显示全部没使用的内存。Shared列显示多个进程共享的内存总额。Buffers列显示磁盘缓存的当前大小。第五行(Swap:)对对换空间,显示的信息类似上面。如果这行为全0,那么没使用对换空间。在缺省的状态下,free命令以千字节(也就是1024字节为单位)来显示内存使用情况。可以使用—h参数以字节为单位显示内存使用情况,或者可以使用—m参数以兆字节为单位显示内存使用情况。还可以通过—s参数使用命令来不间断地监视内存使用情况:

#free –b –s2

这个命令将会在终端窗口中连续不断地报告内存的使用情况,每2秒钟更新一次。

(2)组合watch与 free命令用来实时监控内存使用情况:

代码如下:

#watch -n 2 -d free

Every 2.0s: free Fri Jul 6 06:06:12 2007

total used free shared buffers cached

Mem: 233356 218616 14740 0 5560 64784

-/+ buffers/cache: 148272 85084

Swap: 622584 6656 615928

watch命令会每两秒执行 free一次,执行前会清除屏幕,在同样位置显示数据。因为 watch命令不会卷动屏幕,所以适合出长时间的监测内存使用率。可以使用 -n选项,控制执行的频率;也可以利用 -d选项,让命令将每次不同的地方显示出来。Watch命令会一直执行,直到您按下 [Ctrl]-[C] 为止。

二、虚拟内存的概念

(1)Linux虚拟内存实现机制

Linux虚拟内存的实现需要六种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制、内存共享机制。

首先内存管理程序通过映射机制把用户程序的逻辑地址映射到物理地址,在用户程序运行时如果发现程序中要用的虚地址没有对应的物理内存时,就发出了请求页要求;如果有空闲的内存可供分配,就请求分配内存(于是用到了内存的分配和回收),并把正在使用的物理页记录在缓存中(使用了缓存机制)。 如果没有足够的内存可供分配,那么就调用交换机制,腾出一部分内存。另外在地址映射中要通过TLB(翻译后援存储器)来寻找物理页;交换机制中也要用到交换缓存,并且把物理页内容交换到交换文件中后也要修改页表来映射文件地址。

(2)虚拟内存容量设定

也许有人告诉你,应该分配2倍于物理内存的虚拟内存,但这是个不固定的规律。如果你的物理保存比较小,可以这样设定。如果你有1G物理内存或更多的话,可以缩小一下虚拟内存。Linux会把大量的内存用做Cache的,但在资源紧张时回收回.。你只要看到swap为0或者很小就可以放心了,因为内存放着不用才是最大的浪费。

三、使甩vmstat命令监视虚拟内存使用情况

vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。通常使用vmstat 5 5(表示在5秒时间内进行5次采样)命令测试。将得到一个数据汇总它可以反映真正的系统情况。

代码如下:

#vmstat 5 5

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----

r b swpd free buff cache si so bi bo in cs us sy id wa

1 0 62792 3460 9116 88092 6 30 189 89 1061 569 17 28 54 2

0 0 62792 3400 9124 88092 0 0 0 14 884 434 4 14 81 0

0 0 62792 3400 9132 88092 0 0 0 14 877 424 4 15 81 0

1 0 62792 3400 9140 88092 0 0 0 14 868 418 6 20 74 0

1 0 62792 3400 9148 88092 0 0 0 15 847 400 9 25 67 0

vmstat命令输出分成六个部分:

(1)进程procs:

r:在运行队列中等待的进程数 。

b:在等待io的进程数 。

(2)内存memoy:

swpd:现时可用的交换内存(单位KB)。

free:空闲的内存(单位KB)。

buff: 缓冲去中的内存数(单位:KB)。

cache:被用来做为高速缓存的内存数(单位:KB)。

(3) swap交换页面

si: 从磁盘交换到内存的交换页数量,单位:KB/秒。

so: 从内存交换到磁盘的交换页数量,单位:KB/秒。

(4) io块设备:

bi: 发送到块设备的块数,单位:块/秒。

bo: 从块设备接收到的块数,单位:块/秒。

(5)system系统:

in: 每秒的中断数,包括时钟中断。

cs: 每秒的环境(上下文)切换次数。

(6)cpu中央处理器:

cs:用户进程使用的时间 。以百分比表示。

sy:系统进程使用的时间。 以百分比表示。

id:中央处理器的空闲时间 。以百分比表示。

如果 r经常大于 4 ,且id经常小于40,表示中央处理器的负荷很重。 如果bi,bo 长期不等于0,表示物理内存容量太小。

四、Linux 服务器的内存泄露和回收内存的方法

1、内存泄漏的定义:

一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。

2、内存泄露的危害

从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的`是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。存在内存泄漏问题的程序除了会占用更多的内存外,还会使程序的性能急剧下降。对于服务器而言,如果出现这种情况,即使系统不崩溃,也会严重影响使用。

3、内存泄露的检测和回收

对于内存溢出之类的麻烦可能大家在编写指针比较多的复杂的程序的时候就会遇到。在 Linux 或者 unix 下,C、C++语言是最使用工具。但是我们的 C++ 程序缺乏相应的手段来检测内存信息,而只能使用 top 指令观察进程的动态内存总额。而且程序退出时,我们无法获知任何内存泄漏信息。

使用kill命令

使用Linux命令回收内存,我们可以使用Ps、Kill两个命令检测内存使用情况和进行回收。在使用超级用户权限时使用命令“Ps”,它会列出所有正在运行的程序名称,和对应的进程号(PID)。Kill命令的工作原理是:向Linux操作系统的内核送出一个系统操作信号和程序的进程号(PID)。

应用例子:

为了高效率回收内存可以使用命令ps 参数v:

代码如下:

[root@www ~]# ps v

PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND

2542 tty1 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty1

2543 tty2 Ss+ 0:00 0 8 1631 428 0.1 /sbin/mingetty tty2

2547 tty3 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty3

2548 tty4 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty4

2574 tty5 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty5

2587 tty6 Ss+ 0:00 0 8 1627 424 0.1 /sbin/mingetty tty6

2657 tty7 Ss+ 1:18 12 1710 29981 7040 3.0 /usr/bin/Xorg :0 -br -a

2670 pts/2 Ss 0:01 2 682 6213 1496 0.6 -bash

3008 pts/4 Ss 0:00 2 682 6221 1472 0.6 /bin/bash

3029 pts/4 S+ 0:00 2 32 1783 548 0.2 ping 192.168.1.12

3030 pts/2 R+ 0:00 2 73 5134 768 0.3 ps v

然后如果想回收Ping命令的内存的话,使用命令:

代码如下:

# Kill -9 3029

使用工具软件

Memprof是一个非常具有吸引力且非常易于使用的软件,它由Red Hat的Owen Talyor创立。这个工具是用于GNOME前端的Boehm-Demers-Weiser垃圾回收器。这个工具直接就可以执行,并且其工作起来无需对源代码进行任何修改。在程序执行时,这个工具会以图形化的方式显示内存的使用情况。

相关介绍:Linux

严格来讲,Linux这个词本身只表示Linux内核,但人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

Linux拥有以下特性:类似于Unix的基本思想,支持完全免费与自由传播,完全兼容POSIX1.0标准,支持多用户、多任务、有着良好的界面、支持多种平台。Linux 能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux有着许多不同的版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

‘玖’ 如何在Linux系统上管理Systemd服务

方法/步骤

检查你的Linux系统使是否使用Systemd服务
如果你的Linux发行版是否使用systemd还不能确定,打开一个终端窗口,运行以下命令。 这说明在Linux系统上你systemd的版本号:systemd -version

分析引导过程
该systemd-analyze命令允许你查看你的启动过程中,信息等过了多长时间,哪些服务(和其他进程)增加了最多的时间来启动进程。
要查看一般启动过程中的信息,运行以下命令:
systemd-analyze
要查看每个进程所用的时间来启动,运行以下命令:systemd-analyze blame

查看Units
Systemd用Units作为一个单元,它可以是服务(.service),挂载点(.mount),设备(.device), 同样systemctl命令管理所有这些类型的单位。要查看系统上所有可用的单元文件:systemctl list-unit-files
要列出所有正在运行的单位:systemctl list-units

管理服务
要查看启用和禁用服务的列表,您可以使用相同systemctl命令同上,但是它只列出存在的服务:systemctl list-unit-files –type=service

该systemctl命令可以启动,停止或重新启动服务。 你也可以告诉服务为“刷新”它的配置。
status命令是这里唯一的行动,将打印输出到终端。 其他命令会悄悄地生效。
systemctl start name.service
systemctl stop name.service

使用systemctl enable命令启动systemd自动启动服务
systemctl enable name.service
systemctl disable name.service

‘拾’ 《Linux操作系统管理与网络服务教程》pdf下载在线阅读全文,求百度网盘云资源

《Linux操作系统管理与网络服务教程》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1BhCR40fn55A0IiWHXlIHSQ

?pwd=5yjp 提取码:5yjp
简介:本书包括4篇,□□篇“linux操作系统基础”将引导读者建立linux操作系统,认识linux操作系统的基本使用环境,熟悉linux操作系统的基本操作等;第□篇“linux操作系统的基本管理”将学习重点转移到操作系统管理操作上,内容包括用户账户管理、文件系统管理、磁盘管理以及系统资源管理等;第3篇“shell基础”对shell脚本程序设计做了概括性的介绍;第4篇“网络服务基础”就常见的linux网络服务器的搭建与基本配置展开讨论。书中结合了大量实践操作案例并辅以操作过程图示。本书作者在编写时参考了lpi(linux professional institute)认证考试大纲的要求,涵盖了lpi 101与lpi 10□考试大纲要求的知识点。

《计算机系列教材:Linux操作系统管理与网络服务教程》既可作为高等院校linux相关课程的专业教材,也可作为读者参加lpic level 1认证培训及考试复习的核心学习材料,还可作为专业人士的常用参考书。

热点内容
android弹出通知 发布:2025-05-16 14:59:20 浏览:510
数据库EST 发布:2025-05-16 14:59:15 浏览:197
android版本号修改 发布:2025-05-16 14:53:48 浏览:173
android相机闪光灯 发布:2025-05-16 14:35:49 浏览:259
服务器无法通过ip访问 发布:2025-05-16 14:26:13 浏览:540
网吧u盘拒绝访问 发布:2025-05-16 14:13:50 浏览:260
无线网检查网络配置是怎么回事 发布:2025-05-16 14:04:03 浏览:220
网络爬虫python代码 发布:2025-05-16 14:03:26 浏览:516
汽车小组件怎么弄到安卓桌面 发布:2025-05-16 13:51:12 浏览:220
linuxg编译器下载 发布:2025-05-16 13:50:58 浏览:776