리눅스 물리적 메모리는 무엇을 의미합니까?
Linux에서 물리적 메모리는 시스템 하드웨어가 제공하는 메모리 크기, 즉 실제 메모리를 의미합니다. Linux의 메모리 관리는 물리적 메모리를 완전히 활용할 수 있도록 페이징 액세스 메커니즘을 채택합니다. 커널은 적절한 시간에 물리적 메모리에서 자주 사용되지 않는 데이터 블록을 가상 메모리로 자동 교체하고 자주 사용되는 데이터 블록은 자동으로 교체됩니다. 적절한 시간에 가상 메모리에 정보가 물리적 메모리에 유지됩니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
Virtual Memory and Physical Memory in Linux
우리 모두는 메모리에서 직접 데이터를 읽고 쓰는 것이 하드 디스크에서 데이터를 읽고 쓰는 것보다 훨씬 빠르다는 것을 알고 있으므로 모든 데이터를 메모리에서 읽고 쓰는 것이 바람직합니다. 그러나 메모리는 제한되어 있으므로 물리적 메모리와 가상 메모리의 개념이 발생합니다.
물리적 메모리는 시스템 하드웨어에서 제공하는 메모리 크기, 즉 실제 메모리입니다. Linux에는 물리적 메모리와 비교하여 가상 메모리라는 개념도 있습니다. 가상 메모리는 물리적 메모리 부족을 해결하기 위해 제안된 전략입니다. 디스크 공간을 사용하여 가상화된 논리적 메모리입니다. 가상 메모리로 사용되는 디스크 공간을 스왑 공간(스왑 공간이라고도 함)이라고 합니다.
물리적 메모리의 확장으로, Linux는 물리적 메모리가 부족할 때 스왑 파티션의 가상 메모리를 사용합니다. 보다 구체적으로 커널은 임시로 사용되지 않은 메모리 블록 정보를 스왑 공간에 기록합니다. 일단 해제되면 이 메모리는 다른 목적으로 사용될 수 있습니다. 원본 콘텐츠가 필요할 때 정보는 스왑 공간에서 물리적 메모리로 다시 읽혀집니다.
Linux의 메모리 관리는 물리적 메모리를 완전히 활용할 수 있도록 페이징 액세스 메커니즘을 채택합니다. 커널은 물리적 메모리에서 자주 사용되지 않는 데이터 블록을 적절한 시간에 자동으로 가상 메모리로 교체합니다. 적절한 시점에 자동으로 가상 메모리로 스왑되어 사용된 정보는 물리적 메모리에 유지됩니다.
Linux 메모리 작동 메커니즘을 깊이 이해하려면 다음 측면을 알아야 합니다.
우선, Linux 시스템은 여유 물리적 메모리를 최대한 유지하기 위해 수시로 페이지 스왑 작업을 수행합니다. 아무것도 없더라도 가능합니다. 메모리가 필요한 것에는 Linux도 일시적으로 사용하지 않는 메모리 페이지를 교체합니다. 이렇게 하면 교체를 기다리는 데 필요한 시간을 크게 절약할 수 있기 때문입니다.
두 번째로, Linux의 페이지 스와핑은 조건부입니다. 사용하지 않을 때 모든 페이지가 가상 메모리로 스와핑되는 것은 아닙니다. Linux 커널은 "가장 최근에 사용한" 메모리에 따라 자주 사용되지 않는 일부 페이지 파일만 가상 메모리로 스와핑합니다.
때때로 이러한 현상을 볼 수 있습니다. Linux에는 여전히 물리적 메모리가 많지만 스왑 공간도 많이 사용됩니다. 사실 이는 놀라운 일이 아닙니다. 예를 들어, 메모리 자원을 많이 차지하는 프로세스가 실행 중에 메모리 자원을 많이 소모하는 경우, 자주 사용되지 않는 일부 페이지 파일은 가상 메모리로 스왑되지만 나중에 메모리 자원을 많이 차지하는 프로세스는 종료되고 이때 방금 스왑 아웃된 페이지 파일은 (필요한 경우를 제외하고) 자동으로 물리 메모리로 스왑되지 않으며, 이때 시스템 물리 메모리는 많이 여유로워지며 스왑은 공간도 사용하고 있는데 방금 언급한 문제 현상이 나타납니다.
마지막으로, 사용 시 스왑 공간의 페이지가 먼저 물리적 메모리로 스왑됩니다. 이때 이러한 페이지를 수용할 수 있는 물리적 메모리가 충분하지 않으면 결과적으로 즉시 스왑 아웃되지 않을 수 있습니다. 이러한 스왑 페이지를 저장하는 데 필요한 공간은 결국 Linux에서 잘못된 충돌 및 서비스 이상과 같은 문제로 이어질 것입니다. Linux는 일정 시간 내에 스스로 복원할 수 있지만 복원된 시스템은 기본적으로 사용할 수 없습니다.
따라서 Linux 메모리 사용을 올바르게 계획하고 설계하는 것이 매우 중요합니다. 물리적 메모리 및 스왑 공간의 크기 설정은 실제 사용되는 하드 디스크 크기에 따라 다르지만 일반적으로 다음 기본 원칙을 따릅니다.
-
메모리가 더 작은 경우(경험에 따르면 물리적 메모리는 4GB 미만) 일반적으로 스왑 파티션 크기를 메모리의 2배로 설정합니다.
물리적 메모리가 4GB보다 크고 16GB 미만인 경우 다음을 수행할 수 있습니다. 스왑 파티션 크기를 실제 메모리와 동일하게 설정합니다.
메모리 크기가 16GB를 초과하는 경우 스왑을 0으로 설정할 수 있지만 특정 크기의 스왑 파티션을 설정하면 특정 효과가 있으므로 권장되지 않습니다.
메모리 사용량을 확인하는 Linux 시스템
GUI를 사용하는 Windows 및 Linux 운영 체제에서는 일반적으로 UI를 사용하여 시스템 메모리 및 공간 사용량을 확인할 수 있지만 개발이나 운영 및 유지 관리 담당자에게는 종종 GUI 없이 Linux 서버에서 작업하려면 명령줄이 GUI보다 더 많은 기능과 유연성을 제공할 수 있습니다.
특히 시스템의 응용 프로그램이 비정상적이거나 시스템 사용량이 비정상적이거나 Linux 개발에 메모리 트리밍이 필요한 경우 시스템 메모리 및 공간 사용량을 이해하고 일반적으로 사용되는 몇 가지 보기 도구를 마스터해야 합니다.
- 메모리 사용량 보기: free
- 프로세스 정보 표시(CPU, 메모리 사용량 및 기타 정보 포함): top, ps
- 드라이버 점유 메모리 보기: lsmod
free
명령은 현재 시스템의 사용되지 않은 메모리 크기를 표시할 수 있으며, 커널에서 사용하는 메모리 버퍼도 표시할 수 있습니다. 터미널에 free
를 입력하면(매개변수는 나중에 설명됩니다) 다음과 같이 서버의 메모리 상태를 확인할 수 있습니다.free
命令可以显示当前系统未使用的和已使用的内存大小,还可以显示被内核使用的内存缓冲区。在终端中输入free
(参数稍后说明)可以看到我们服务器内存情况,如下:
1.1详细说明如下:
Mem: 内存的使用信息
Swap: 交换空间的使用信息
total:总计物理内存的大小。
used:已使用物理内存。
free:可用物理内存。
shared:多个进程共享的内存总额。
buffers/cached:缓存缓冲使用物理内存大小。
available:还可以被应用程序使用的物理内存大小。
1.2 各物理内存之间的关系
total = used + free + buffer/cache
avaiable = free + buffer/cache(一般来说是这样,个人电脑是这样,但服务器或者公共云普通用户有部分buffer/cache是用不了的就会有avaiable
1.3 free与available的区别
free是正在未被使用的内存
available是应用程序认为可用的内存
Linux为了提升读写性能,消耗一部分内存资源作为缓存或者缓冲内存,在内核看来这部分buffer/cache属于已被使用的内存;在应用程序申请内存,而free内存不够时,就会让内核回收buffer和cache来满足应用程序的内存需求。
1.4buff和cache的区别
buffers和cache是有一定区别的:
- A buffer is something that has yet to be “written” to disk. —buffer 写缓存,数据存储时,先保存到磁盘缓冲区,然后再写入到永久空间
- A cache is something that has been “reed” from the disk adn stored for later use. --cache 读缓存,数据从磁盘读出后,暂留在缓冲区,预备程序接下来的使用。
1.5 free参数说明
free命令下显示的单位是k,可以在free后面加上-m(即free -m
)显示单位为Mb,如下图:
可以通过free --help
查看free的详细命令:
通过free -h可以自动匹配适合人阅读习惯的单位,其中h是humanity之意。
ps:
第3行swap为交换分区,类似windows系统中的虚拟内存,当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。
- top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令可以有效的发现系统的缺陷出在哪里,如内存不够、CPU处理能力不够、IO读写过高等。通过top命令所提供的互动式界面,用热键可以管理。
相关语法:top -X
- Mem
- Swap
- : 스왑 공간 사용량 정보 total
used: 물리적 메모리가 사용되었습니다.
🎜shared🎜: 여러 프로세스가 공유하는 총 메모리 양입니다.
🎜buffers/cached🎜: 캐시 버퍼는 물리적 메모리 크기를 사용합니다.
🎜available🎜: 애플리케이션에서도 사용할 수 있는 물리적 메모리의 크기입니다. 🎜
🎜🎜1.2 물리적 메모리의 관계🎜
🎜🎜전체 = 사용 + 여유 + 버퍼/캐시🎜🎜사용 가능 = 여유 + 버퍼/캐시🎜 (일반적으로 개인용 컴퓨터의 경우이지만, 일반 서버나 퍼블릭 클라우드의 사용자가 사용할 수 없는 버퍼/캐시가 있는 경우에는 available 🎜🎜1.3 free와 available의 차이🎜🎜🎜free🎜는 사용되지 않는 메모리입니다.
🎜available🎜은 애플리케이션에서 사용 가능한 것으로 간주하는 메모리입니다.
Linux는 읽기 쓰기 성능을 향상시키기 위해 메모리 자원의 일부를 캐시 또는 버퍼 메모리로 소비합니다. 커널의 관점에서 이 부분(버퍼/캐시🎜)은 애플리케이션이 메모리를 적용할 때 사용되는 메모리에 속합니다. 메모리가 충분하지 않으면 커널은 애플리케이션의 메모리 요구 사항을 충족하기 위해 버퍼와 캐시를 재활용합니다. 🎜
🎜🎜1.4버프와 캐시의 차이점🎜
🎜버퍼와 캐시에는 일정한 차이점이 있습니다. 🎜🎜🎜버퍼는 아직 “ 🎜🎜캐시는 나중에 사용하기 위해 디스크에서 "리드"된 것입니다. --cache 읽기 캐시는 디스크에서 데이터를 읽은 후 프로그램의 후속 사용을 준비하기 위해 임시로 버퍼에 저장됩니다. 🎜🎜🎜🎜1.5 자유 매개변수 설명🎜
🎜free 명령에 표시되는 단위는 k입니다. free 뒤에 -m을 추가할 수 있습니다(예:free -m
) 표시 단위는 아래와 같이 Mb입니다.free --help
를 통해 free의 자세한 명령을 볼 수 있습니다:
3행 🎜swap🎜은 Windows 시스템의 가상 메모리와 유사한 스왑 파티션으로, 메모리가 부족할 때 하드 디스크 공간의 일부를 메모리로 가상화하여 문제를 해결합니다. 메모리 용량 부족 문제. 🎜🎜🎜🎜🎜2 프로세스가 차지하는 메모리 확인🎜🎜🎜🎜🎜top 명령은 시스템의 전반적인 동작을 실시간으로 동적으로 볼 수 있는 다중 기능을 통합하는 실용적인 도구입니다. 파티 정보 모니터링 시스템 성능 및 운영 정보 도구입니다. top 명령은 메모리 부족, CPU 처리 능력 부족, 과도한 IO 읽기 및 쓰기와 같은 시스템 결함을 효과적으로 검색할 수 있습니다. top 명령이 제공하는 대화형 인터페이스는 단축키를 사용하여 관리할 수 있습니다.
관련 구문:
top -X
🎜🎜-b:以批处理模式操作; -c:显示完整的治命令; -d:屏幕刷新间隔时间; -I:忽略失效过程; -s:保密模式; -S:累积模式; -i<时间>:设置间隔时间; -u<用户名>:指定用户名; -p<进程号>:指定进程; -n<次数>:循环显示的次数。
h:显示帮助画面,给出一些简短的命令总结说明; k:终止一个进程; i:忽略闲置和僵死进程,这是一个开关式命令; q:退出程序; r:重新安排一个进程的优先级别; S:切换到累计模式; s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s; f或者F:从当前显示中添加或者删除项目; o或者O:改变显示项目的顺序; l:切换显示平均负载和启动时间信息; m:切换显示内存信息; t:切换显示进程和CPU状态信息; c:切换显示命令名称和完整命令行; M:根据驻留内存大小进行排序; P:根据CPU使用百分比大小进行排序; T:根据时间/累计时间进行排序; w:将当前设置写入~/.toprc文件中。
2.1 top命令的第一到第五行的详细说明如下:
top - 10:14:31 当前系统时间
up 3 days, 22:36 系统已经运行了3天22h36min
1 users 共有1个用户为登录状态
load average: 0.57, 0.74, 0.65 系统负载,即任务队列的平均长度,load average后面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况。
注意:load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
Tasks: 322 total 总进程数
2 running 正在运行的进程数
320 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 冻结进程数
%Cpu(s): 2.7 us, 用户空间占用CPU百分比(用户态使用CPU占比)
2.7 sy 内核空间占用CPU百分比 (系统态使用CPU占比)
0.0 ni 用做nice加权的进程分配的用户态cpu时间比
94.0 id 空闲的cpu时间比
0.0 wa IO wait ,cpu等待磁盘写入完成时间
0.0 hi Hardware IRQ,硬中断消耗时间
0.0 si Software IRQ,软中断消耗时间
0.7 st 被hypervisor(管理程序,一般为服务器或者虚拟机)偷取时间
MiB Mem : 11995.2 total 物理内存总量,单位:Mb
360.9 free 空闲内存总量
6766.0 used 使用的物理内存总量,此处需要注意的是:used实际指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
4868.3+buff/cache 用作内核缓存的内存量
MiB Swap: 7680.0 total 交换区总量
7433.1 free 空闲交换区总量
246.9 used 使用的交换区总量
3665.4 avail Mem 在不交换的情况下,对启动新应用程序可用内存的估计
(网上也有说法是交换区的可用容量)
top命令第六行为空。
top命令第七行是各个进程的监控:
从左到右依次为:
PID — 进程id USER — 进程所有者 PR — 进程优先级 NI — nice值。负值表示高优先级,正值表示低优先级 VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA SHR — 共享内存大小,单位kb S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 %CPU — 上次更新到现在的CPU时间占用百分比 %MEM — 进程使用的物理内存百分比 TIME+ — 进程使用的CPU时间总计,单位1/100秒 COMMAND — 进程名称(命令名/命令行)
需要注意的是,此界面显示的并不是所有进程,由于页面显示限制仅仅显示了这几行,我们可以通过top -b -n 1
查看系统的所有进程的快照。
命令:cat /proc/meminfo
注:initrd和初始化代码init在引导完成之后会被释放掉,所以最终的内核可管理内存(total)会比dmesg显示的available更多一点,相应的源代码可参见: free_initrd_mem() 和 free_initmem()。
优化可以主要从优化保留内存和优化used内存两个方面进行,具体的需要结合代码。
查看磁盘命令比较多,最常用的为: df -lh
命令
4 lsmod查看驱动占用内存
命令:lsmod
- 功能:
列出已加载的模块,以友好的方式显示/proc/modules的内容 - 格式:
第一列:Module表示模块的名称,如sysDebug
第二列:Size表示模块大小,单位:byte
第三列:Used 表示依赖的模块个数
第四列:by表示依赖的模块内容 - 示例:
lsmod|grep -i ext3 //查看当前系统是否加载ext3驱动模块
相关推荐:《Linux视频教程》
위 내용은 리눅스 물리적 메모리는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











DeepSeek은 웹 버전과 공식 웹 사이트의 두 가지 액세스 방법을 제공하는 강력한 지능형 검색 및 분석 도구입니다. 웹 버전은 편리하고 효율적이며 설치없이 사용할 수 있습니다. 개인이든 회사 사용자이든, DeepSeek를 통해 대규모 데이터를 쉽게 얻고 분석하여 업무 효율성을 향상시키고 의사 결정을 지원하며 혁신을 촉진 할 수 있습니다.

Docker 컨테이너를 사용하여 사전 컴파일 된 패키지 (Windows 사용자의 경우)를 사용하여 소스 (숙련 된 개발자)를 컴파일하는 것을 포함하여 DeepSeek를 설치하는 방법에는 여러 가지가 있습니다. 공식 문서는 신중하게 문서를 작성하고 불필요한 문제를 피하기 위해 완전히 준비합니다.

세계 최고의 디지털 자산 거래소 인 Ouyi Okx는 이제 안전하고 편리한 거래 경험을 제공하기 위해 공식 설치 패키지를 시작했습니다. OUYI의 OKX 설치 패키지는 브라우저를 통해 액세스 할 필요가 없습니다. 설치 프로세스는 간단하고 이해하기 쉽습니다. 사용자는 최신 버전의 설치 패키지를 다운로드하고 설치를 단계별로 완료하면됩니다.

Gate.io는 사용자가 설치 패키지를 다운로드하여 장치에 설치하여 사용할 수있는 인기있는 cryptocurrency 교환입니다. 설치 패키지를 얻는 단계는 다음과 같습니다. Gate.io의 공식 웹 사이트를 방문하고 "다운로드"를 클릭하고 해당 운영 체제 (Windows, Mac 또는 Linux)를 선택하고 컴퓨터에 설치 패키지를 다운로드하십시오. 설치 중에 항 바이러스 소프트웨어 또는 방화벽을 일시적으로 비활성화하여 원활한 설치를 보장하는 것이 좋습니다. 완료 후 사용자는 GATE.IO 계정을 만들려면 사용을 시작해야합니다.

Bitget은 스팟 거래, 계약 거래 및 파생 상품을 포함한 다양한 거래 서비스를 제공하는 Cryptocurrency 교환입니다. 2018 년에 설립 된이 교환은 싱가포르에 본사를두고 있으며 사용자에게 안전하고 안정적인 거래 플랫폼을 제공하기 위해 노력하고 있습니다. Bitget은 BTC/USDT, ETH/USDT 및 XRP/USDT를 포함한 다양한 거래 쌍을 제공합니다. 또한 Exchange는 보안 및 유동성으로 유명하며 프리미엄 주문 유형, 레버리지 거래 및 24/7 고객 지원과 같은 다양한 기능을 제공합니다.

OKX라고도하는 Ouyi는 세계 최고의 암호 화폐 거래 플랫폼입니다. 이 기사는 OUYI의 공식 설치 패키지 용 다운로드 포털을 제공하여 사용자가 다른 장치에 OUYI 클라이언트를 설치할 수 있도록합니다. 이 설치 패키지는 Windows, Mac, Android 및 iOS 시스템을 지원합니다. 설치가 완료되면 사용자는 OUYI 계정에 등록하거나 로그인하고 암호 화폐 거래를 시작하며 플랫폼에서 제공하는 기타 서비스를 즐길 수 있습니다.

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.
