Questions tagged «memory»

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


6
Shell命令读取设备寄存器?
在运行Linux的单板计算机上,是否可以读取控制硬件的设备配置寄存器的内容?我认为这将是的包装inw()。 我正在寻找与U-boot内存转储(md)命令等效的命令,以便在驱动程序调试的上下文中使用。
18 linux  memory  embedded 

3
堆栈分配在Linux中如何工作?
操作系统是否为堆栈或其他内容保留了固定数量的有效虚拟空间?仅使用大局部变量就能产生堆栈溢出吗? 我写了一个小C程序来测试我的假设。它在X86-64 CentOS 6.5上运行。 #include <string.h> #include <stdio.h> int main() { int n = 10240 * 1024; char a[n]; memset(a, 'x', n); printf("%x\n%x\n", &a[0], &a[n-1]); getchar(); return 0; } 运行程序可以得到&a[0] = f0ceabe0和&a[n-1] = f16eabdf proc映射显示了堆栈: 7ffff0cea000-7ffff16ec000. (10248 * 1024B) 然后我试图增加 n = 11240 * 1024 运行程序可以得到&a[0] = b6b36690和&a[n-1] = b763068f …

8
cronVS。睡眠-就有效的CPU /内存利用率而言,哪种更好?
案子: 我需要在特定的时间间隔运行一些命令/脚本,为此,我有两个选择: 成立了cron-job sleep在脚本本身中实现一个循环。 题: 从资源消耗的角度来看,哪个是更好的选择,为什么?是cron更好的方法吗?cron是否使用某种触发器或使其比其他触发器更有效的触发器?cron使用什么程序来检查和启动作业?

2
内存使用情况命令,语法类似于time命令
什么命令显示程序的内存使用情况,我正在寻找一个易于使用且语法与该time命令相似的命令。我正在尝试查找用C编写的md5哈希程序的内存使用情况,并且需要7秒钟来哈希“ hello world”。 我正在使用安装了busybox的android操作系统。
18 memory  time  command 


1
缓存的内存和已用的内存有什么区别?
在Linux Mint 17.3 Cinnamon的“系统监视器”面板小程序中,它显示了已用内存和缓存的内存的组合使用,而在系统监视器应用程序中,它仅显示了已使用的内存,因此系统监视器倾向于显示更高的内存使用率。高速缓存的内存到底是什么?是否要使用大量内存,这是否值得担心?
18 memory 

1
为什么不能自动回收平板对象
更新:我不再在4.9。*上出现此问题。*不确定何时修复。 每天,在进行完整的系统备份之后,各种程序都会因读取错误而失败,直到我运行echo 2 > /proc/sys/vm/drop_caches以释放可回收的平板对象。 例如,这sudo apt-get update是备份后的输出。 $ sudo apt-get update Hit http://ftp.ca.debian.org unstable InRelease Hit http://ftp.ca.debian.org experimental InRelease Ign http://dl.google.com stable InRelease Get:1 http://ftp.ca.debian.org unstable/contrib amd64 Packages/DiffIndex [7,819 B] Hit http://dl.google.com stable Release.gpg Hit http://ppa.launchpad.net wily InRelease Get:2 http://ftp.ca.debian.org unstable/non-free amd64 Packages/DiffIndex [6,577 B] Hit http://dl.google.com stable Release …

4
如何强制Linux内核“冻结”(或几乎冻结)几百毫秒
我们正在非实时内核(CentOS 6)上运行实时进程,并且这种情况可能不会改变。 我们有一个流媒体视频应用程序,它需要一个定制的FPGA每次连续1.5小时连续提供约500 MB / s的PCIe流量。该应用程序运行良好-大多数时候。但是,在某些情况下,内核似乎一次最多只能停止响应对PCIe或内存请求的服务,最长可达500毫秒。这似乎是在来自另一个线程的突发文件IO期间发生的。我发现无法通过在主应用程序运行时仅从用户空间进行大量虚拟文件IO来尝试复制此问题。 有没有一种方法可以强制(模拟)Linux内核的全局“冻结”(特别是停止PCIe或所有DDR3内存访问等操作),以便我们可以重现此问题? 目前,我们已将最多10毫秒的缓冲实现到内部FPGA存储器中,但这还不够。我们可以缓冲到FPGA DDR3,然后转储到主机,但是我们需要一种在胁迫下测试此新功能的方法。 我们不希望内核永久冻结或锁定。我们希望能够设置时间间隔。 我正在寻找一些方法来/proc/sys/vm临时编写魔术值,这些临时值会使系统虚拟爬网,然后在几百毫秒后恢复原状,但是寻找打破它的可能方法的数量并不适合像我这样的新手(https://www.kernel.org/doc/Documentation/sysctl/vm.txt)。也许有些numactl魔术?

4
是否可以找到DIMM的物理地址范围?
我注意到SMBios Type 20在这里会有所帮助,但是从版本2.5(2006-09-05)pp.25,L796和pp.131起,它是可选的,而类型16、17和19是强制性的,但不完全是救命。 物理内存阵列(类型16) 整个系统都有这些结构中的一种,解释了该板上可能出现的情况。 Handle 0x1000, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 768 GB Error Information Handle: Not Provided Number Of Devices: 24 存储设备(类型17) 每个Dimm有一个记录,告诉您板上安装的物理Dimm。 Handle 0x1100, DMI type 17, 34 bytes …
17 memory  ecc  smbios 

2
Linux:使用的总交换=进程使用的交换+?
因此,我试图对交换使用率高的系统中的交换使用来自何处进行调查: # free total used free shared buffers cached Mem: 515324 508800 6524 0 4852 27576 -/+ buffers/cache: 476372 38952 Swap: 983032 503328 479704 加总每个进程使用的交换: # for proc in /proc/*; do cat $proc/smaps 2>/dev/null | awk '/Swap/{swap+=$2}END{print swap "\t'`readlink $proc/exe`'"}'; done | sort -n | awk '{total+=$1}/[0-9]/;END{print total "\tTotal"}' 0 …
17 linux  memory  swap 

3
Linux下如何检测内存类型?
哪个Linux实用程序可以告诉我服务器中是否已注册或未缓冲的ECC内存?Lshw并dmidecode没有对我的工作; dmidecode不提供有关已注册与未缓冲的信息: Handle 0x0022, DMI type 17, 28 bytes Memory Device Array Handle: 0x0021 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: DIMM-1A Bank Locator: Not Specified Type: <OUT OF SPEC> Type Detail: Synchronous Speed: 1066 …
17 linux  hardware  memory 

2
高内存使用率,但没有进程在使用它
我free -m在Hyper-V上运行的Debian VM上运行: total used free shared buffers cached Mem: 10017 9475 541 147 34 909 -/+ buffers/cache: 8531 1485 Swap: 1905 0 1905 因此,在我的10GB内存中,有8.5GB正在使用,只有1500MB可用(不包括缓存)。 但是我很难找到正在使用内存的东西。的输出ps aux | awk '{sum+=$6} END {print sum / 1024}'(应该将RSS利用率相加)为: 1005.2 换句话说,我的进程仅使用1GB的内存,而整个系统(不包括缓存)使用8.5GB。 其他7.5GB可能会使用什么? ps:我有一台配置类似的服务器,显示使用过的mem为1200(免费mem = 8.8GB),ps中的RSS使用总和为900,这与我的预期更接近... 编辑 cat /proc/meminfo 在机器1(低内存)上: MemTotal: 10257656 kB MemFree: 395840 …
17 linux  debian  memory 

3
在系统内存上,尤其是tmpfs,shm和hugepages之间的区别。
最近,我对基于Linux内核内存的各种文件系统感到好奇。 Note:就我而言,与更好地理解标题中提出的问题相比,以下问题应被视为或多或少是可选的。我在下面问他们,因为我相信回答它们可以更好地帮助我理解这些差异,但是由于我的理解有限,因此其他人可能会更好。我准备接受任何可以丰富我对标题中提到的三个文件系统之间差异的理解的答案。 最终,我认为我想挂载一个可用的文件系统,hugepages,尽管一些轻松的研究(并且仍在进行更轻松的修改)使我相信a rewritable hugepage mount不是一个选择。我错了吗?这里有什么机制? 另外关于 hugepages: uname -a 3.13.3-1-MANJARO \ #1 SMP PREEMPT \ x86_64 GNU/Linux tail -n8 /proc/meminfo HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 8223772 kB DirectMap2M: 16924672 kB DirectMap1G: 2097152 kB (以下是/ proc / meminfo和/ proc / cpuinfo的全文版本) 以上是怎么回事?我是否已经分配hugepages?了DirectMap内存页和hugepages? 更新 …

3
如何限制进程及其子进程的总资源(内存)
关于约束单个进程的资源有很多问题和答案,例如RLIMIT_AS可用于约束由进程分配的最大内存,在诸如此类中可以视为VIRT top。有关该主题的更多信息,例如,这里是否有一种方法可以限制Unix中特定进程可以使用的内存量? setrlimit(2) 文档说: 通过fork(2)创建的子进程继承其父级的资源限制。资源限制在execve(2)中保留。 应该通过以下方式理解: 如果某个进程的RLIMIT_AS为2GB,则它分配的内存不能超过2GB。当它产生一个子代时,会将2GB的地址空间限制传递给该子代,但计数从0开始。这两个进程加起来最多会占用4GB的内存。 但是,约束整个进程树分配的内存总和的有用方法是什么?

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.