Linux的内存用量

  • 日期:08-17
  • 点击:(1663)


?

我想明天3天前分享这项技术

Linux上的内存管理很复杂。虽然使用率很高,但没有问题。你还应该注意其他一些事情。

在Linux上使用光学内存通常并不意味着存在严重问题。为什么?因为健康的Linux系统会在内存中缓存磁盘活动,所以它基本上占用了未使用的内存,这显然是一件好事。

换句话说,它不会浪费内存。使用空闲内存可以提高磁盘访问速度,而不会占用运行应用程序的内存。您还可以认为使用此内存缓存比直接访问硬盘驱动器(HDD)快数百倍,并且明显快于直接访问固态驱动器。内存已满或几乎已满通常意味着系统尽可能高效地运行。这不是操作上的问题。

缓存如何工作?

磁盘缓存只是意味着系统利用未使用的资源(可用内存)来加速磁盘读写。应用程序不会丢失任何内容,并且大多数时间会根据需要获得更多内存。此外,磁盘缓存不会导致应用程序切换到交换分区。相反,在需要时立即返回用作磁盘高速缓存的存储空间,并更新磁盘内容。

主要和次要页面错误

Linux系统通过拆分物理内存,将分区引用到“页面”,并将这些页面映射到每个进程的虚拟内存来为进程分配空间。虽然相关进程仍在运行,但可能会从内存中删除不再使用的页面。当进程需要未映射或不在内存中的页面时,会发生故障。因此,这种“故障故障”并不意味着“错误错误”,而是“不可用”,故障在存储器管理中起着重要作用。

次要故障意味着内存中的页面未分配给请求的进程或未标记为出现在内存管理单元中。主要故障意味着页面未保存在内存中。

如果您想感受下一页故障的频率和主页错误,请尝试这样的ps命令。请注意,我们想要的是与页面错误关联的项目以及生成它的命令。输出中省略了许多行。 MINFL显示次要故障的数量,而MAJFL显示主要故障的数量。

$ ps -eo min_flt,maj_flt,cmd

MINFL MAJFL CMD

150/usr/lib/systemd/systemd --switched-root --system --deserialize 18

0 0 [kthreadd]

0 0 [rcu_gp]

0 0 [rcu_par_gp]

0 0 [kworker/0: 0H-kblockd]

.

166 20 gpg-agent --homedir/var/lib/fwupd/gnupg --use-standard-socket --daemon

525 1/usr/libexec/gvfsd-trash --spawner: 1.16/org/gtk/gvfs/exec_spaw/0

4966 4/usr/libexec/gnome-terminal-server

3617 0 bash

0 0 [kworker/1: 0H-kblockd]

927 0 gdm-session-worker [pam/gdm-password]

要报告单个进程,可以尝试这样的命令(参数中的LCTT:1是要查看的进程的PID):

$ ps -o min_flt,maj_flt 1

MINFL MAJFL

150

您还可以添加其他显示字段,例如流程所有者的UID和GID。

$ ps -o min_flt,maj_flt,cmd,args,uid,gid 1

MINFL MAJFL CMD COMMAND UID GID

150/usr/lib/systemd/systemd - /usr/lib/systemd/systemd - 0 0

它满了多少钱?

掌握使用多少内存的更好方法是使用free -m命令。 -m选项指定数字的单位是MiBmebibyte而不是字节。

$ free -m

可用的免费共享缓存/缓存总数

记忆: 3244 3069 35 49 140 667

交换: 3535 0 3535

请注意,空闲(未使用)内存可能不足,并且可用(可用于启动新应用程序)将显示更大的数量。两者之间的差异值得我们关注。可用可用意味着它可以在需要时使用,免费免费意味着它现在可以使用。

你什么时候担心?

如果Linux系统上的性能良好应用程序响应速度很快,命令行没有显示问题系统可能处于良好状态。请记住,某些应用程序可能由于某种原因而变慢,但它不会影响整个系统。

太多的硬故障可能表明存在问题,但将其与观察到的性能进行比较。

一个好的方法是在可用内存接近0或“交换使用”项目显着增长或波动时开始担心。如果“可用”项是可用总内存的合理百分比,那么请不要担心,如下例所示:

$ free -m

可用的免费共享缓存/缓存总数

记忆: 3244 3069 35 49 140 667

交换: 3535 0 3535

Linux性能很复杂

除此之外,Linux系统上的内存可能会变满,性能可能会降低。当系统出现问题时,请勿使用单个内存使用情况报告作为指示。

Linux系统的内存管理很复杂,因为它需要采取措施来确保系统资源得到最佳利用。不要被内存的开头所欺骗,以便你认为系统存在问题,但事实并非如此。

image.php?url=0MpkLhDG8e收集报告投诉

Linux上的内存管理很复杂。虽然使用率很高,但没有问题。你还应该注意其他一些事情。

在Linux上使用光学内存通常并不意味着存在严重问题。为什么?因为健康的Linux系统会在内存中缓存磁盘活动,所以它基本上占用了未使用的内存,这显然是一件好事。

换句话说,它不会浪费内存。使用空闲内存可以提高磁盘访问速度,而不会占用运行应用程序的内存。您还可以认为使用此内存缓存比直接访问硬盘驱动器(HDD)快数百倍,并且明显快于直接访问固态驱动器。内存已满或几乎已满通常意味着系统尽可能高效地运行。这不是操作上的问题。

缓存如何工作?

磁盘缓存只是意味着系统利用未使用的资源(可用内存)来加速磁盘读写。应用程序不会丢失任何内容,并且大多数时间会根据需要获得更多内存。此外,磁盘缓存不会导致应用程序切换到交换分区。相反,在需要时立即返回用作磁盘高速缓存的存储空间,并更新磁盘内容。

主要和次要页面错误

Linux系统通过拆分物理内存,将分区引用到“页面”,并将这些页面映射到每个进程的虚拟内存来为进程分配空间。虽然相关进程仍在运行,但可能会从内存中删除不再使用的页面。当进程需要未映射或不在内存中的页面时,会发生故障。因此,这种“故障故障”并不意味着“错误错误”,而是“不可用”,故障在存储器管理中起着重要作用。

次要故障意味着内存中的页面未分配给请求的进程或未标记为出现在内存管理单元中。主要故障意味着页面未保存在内存中。

如果您想感受下一页故障的频率和主页错误,请尝试这样的ps命令。请注意,我们想要的是与页面错误关联的项目以及生成它的命令。输出中省略了许多行。 MINFL显示次要故障的数量,而MAJFL显示主要故障的数量。

$ ps -eo min_flt,maj_flt,cmd

MINFL MAJFL CMD

150/usr/lib/systemd/systemd --switched-root --system --deserialize 18

0 0 [kthreadd]

0 0 [rcu_gp]

0 0 [rcu_par_gp]

0 0 [kworker/0: 0H-kblockd]

.

166 20 gpg-agent --homedir/var/lib/fwupd/gnupg --use-standard-socket --daemon

525 1/usr/libexec/gvfsd-trash --spawner: 1.16/org/gtk/gvfs/exec_spaw/0

4966 4/usr/libexec/gnome-terminal-server

3617 0 bash

0 0 [kworker/1: 0H-kblockd]

927 0 gdm-session-worker [pam/gdm-password]

要报告单个进程,可以尝试这样的命令(参数中的LCTT:1是要查看的进程的PID):

$ ps -o min_flt,maj_flt 1

MINFL MAJFL

150

您还可以添加其他显示字段,例如流程所有者的UID和GID。

$ ps -o min_flt,maj_flt,cmd,args,uid,gid 1

MINFL MAJFL CMD COMMAND UID GID

150/usr/lib/systemd/systemd - /usr/lib/systemd/systemd - 0 0

它满了多少钱?

掌握使用多少内存的更好方法是使用free -m命令。 -m选项指定数字的单位是MiBmebibyte而不是字节。

$ free -m

可用的免费共享缓存/缓存总数

记忆: 3244 3069 35 49 140 667

交换: 3535 0 3535

请注意,空闲(未使用)内存可能不足,并且可用(可用于启动新应用程序)将显示更大的数量。两者之间的差异值得我们关注。可用可用意味着它可以在需要时使用,免费免费意味着它现在可以使用。

你什么时候担心?

如果Linux系统上的性能良好应用程序响应速度很快,命令行没有显示问题系统可能处于良好状态。请记住,某些应用程序可能由于某种原因而变慢,但它不会影响整个系统。

太多的硬故障可能表明存在问题,但将其与观察到的性能进行比较。

一个好的方法是在可用内存接近0或“交换使用”项目显着增长或波动时开始担心。如果“可用”项是可用总内存的合理百分比,那么请不要担心,如下例所示:

$ free -m

可用的免费共享缓存/缓存总数

记忆: 3244 3069 35 49 140 667

交换: 3535 0 3535

Linux性能很复杂

除此之外,Linux系统上的内存可能会变满,性能可能会降低。当系统出现问题时,请勿使用单个内存使用情况报告作为指示。

Linux系统的内存管理很复杂,因为它需要采取措施来确保系统资源得到最佳利用。不要被内存的开头所欺骗,以便你认为系统存在问题,但事实并非如此。

image.php?url=0MpkLhDG8e