Questions tagged «memory»

在计算中,内存是指计算系统的状态信息,因为它在某些物理结构中保持活动状态。


7
如何在顶部以兆字节显示meminfo?
有时,当您有几GB的RAM时,以千字节为单位查看meminfo并不舒服。在Linux中,它看起来像: 这是在Mac OS X中的外观: 有没有办法在Linux中以兆字节,千兆字节和兆字节的顶部显示meminfo?
184 linux  memory  top  meminfo 


7
限制单个Linux进程的内存使用
我正在pdftoppm将用户提供的PDF转换为300DPI图像。这非常有效,除非用户提供的PDF页面尺寸很大。 pdftoppm将分配足够的内存以在内存中保存该大小的300DPI图像,对于100平方英寸的页面而言,其大小为100 * 300 * 100 * 300 *每个像素4个字节= 3.5GB。恶意用户可能只会给我一个笨拙的PDF并引起各种问题。 因此,我想对即将运行的子进程的内存使用量设置某种硬性限制-如果该进程尝试分配超过500MB的内存,则该进程就会死掉。那可能吗? 我不认为ulimit可以用于此目的,但是有一个单进程等效项吗?
151 linux  memory  ulimit 

4
我如何在Linux下从/ proc / $ pid / mem中读取?
在Linux的proc(5)手册页告诉我,/proc/$pid/mem“可用于访问进程的内存的页面”。但是直接尝试使用它只会给我 $ cat /proc/$$/mem /proc/self/mem cat: /proc/3065/mem: No such process cat: /proc/self/mem: Input/output error 为什么无法cat打印自己的内存(/proc/self/mem)?当我尝试打印外壳程序的内存时(/proc/$$/mem很明显该进程存在),这个奇怪的“没有这样的进程”错误是什么?那我该如何阅读/proc/$pid/mem?
142 linux  kernel  process  memory  proc 




1
OOM杀手如何决定首先杀死哪个进程?
该答案根据的值解释了内核在遇到OOM情况时采取的措施sysctl vm.overcommit_memory。 当overcommit_memory设置为0或1时,将overcommit被启用,并且允许程序分配比实际可用更多的内存。 现在,当我们在这种情况下用尽内存时会发生什么?OOM杀手如何决定首先杀死哪个进程?

13
如果我有足够多的RAM,是否需要交换空间?
据我了解,Linux 交换分区的目的是从RAM中释放一些“不那么频繁访问”的信息,并将其移至硬盘驱动器上的特定分区(以使其读取或写入速度较慢为代价) ),从本质上允许活动应用程序使用更多的“高速内存”。 当您在具有少量RAM的计算机上并且如果用完时不希望遇到问题时,这非常有用。但是,如果您的系统具有16 GB或32 GB的RAM,并且假设您没有在StackExchange上运行MySQL数据库或在Linux中编辑1080p全长电影,那么是否应该使用交换分区?
91 memory  swap 


8
当我有16 GB RAM时,为什么Vim无法打开100 MB文本文件?
我有一个100MB的MySQL数据库备份文件,但是在具有16G RAM的Linux机器上的Vim中无法打开它。 Vim只是挂起(至少不可用)。这是我不明白的事情。我有16 GB的RAM,为什么不能在编辑器中加载100 MB的文件? 是因为Vim吗?我以为所有内存管理都是由操作系统处理的。
67 vim  memory 

2
Linux是否会在不询问内存是否不足的情况下开始杀死我的进程?
我正在运行带有命令的Shell脚本,以命令背对背运行多个内存密集型程序(2-5 GB)。当我回过头来检查脚本的进度时,我惊讶地发现我的某些进程正在运行Killed,就像我的终端向我报告的那样。在随后Killed启动的程序之前,已经先后完成了一些程序,但是此后所有程序都因分段错误而失败(这可能是由于我的代码中的错误所致,也可能不是,请继续阅读)。 我查看了正在使用的特定群集的使用历史记录,发现有人开始同时运行多个内存密集型进程,并且这样做耗尽了该群集可用的实际内存(甚至交换空间)。尽我所能,这些内存密集型进程大约在我的程序出现问题的同时开始运行。 一旦内存开始耗尽,Linux是否有可能杀死我的程序?以后出现的分段错误是否可能是由于缺少可用于运行程序的内存(而不是代码中的错误)引起的?

9
正确确定Linux中的内存使用情况
我对从ps和free看到的一些结果有些困惑。 在我的服务器上,这是由于 free -m [root@server ~]# free -m total used free shared buffers cached Mem: 2048 2033 14 0 73 1398 -/+ buffers/cache: 561 1486 Swap: 2047 11 2036 我对Linux如何管理内存的理解是,它将磁盘使用情况存储在RAM中,以便以后进行每次访问都更快。我相信这是由“缓存”列指示的。此外,各种缓冲区存储在RAM中,如“缓冲区”列中所示。 因此,如果我理解正确,那么“实际”用法应该是“-/ +缓冲区/缓存”的“已使用”值,在这种情况下为561。 因此,假设所有这些信息都是正确的,那么让我吃惊的部分是的结果ps aux。 我对ps结果的理解是,第六列(RSS)代表进程用于内存的千字节大小。 因此,当我运行以下命令时: [root@server ~]# ps aux | awk '{sum+=$6} END {print sum / 1024}' 1475.52 结果不应该是来自“-/ …
63 linux  memory 

2
需要居民集大小/虚拟大小的解释
我发现这pidstat将是监视流程的好工具。我想计算特定进程的平均内存使用率。这是一些示例输出: 02:34:36 PM PID minflt/s majflt/s VSZ RSS %MEM Command 02:34:37 PM 7276 2.00 0.00 349212 210176 7.14 scalpel (这是的输出的一部分pidstat -r -p 7276。) 我应该使用常驻集大小(RSS)或虚拟大小(VSZ)信息来计算平均内存消耗吗?我已经在Wikipedia和论坛上阅读了一些内容,但是我不确定是否完全了解这些区别。另外,似乎它们都不可靠。那么,如何监视进程以获取其内存使用情况? 在此问题上的任何帮助将是有用的。
61 linux  process  memory 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.