标签: memory

32 位机器如何支持超过 4 GB 的 RAM?

我一直对此感到疑惑,但从未完全理解 32 位机器如何处理超过 4 GB 的RAM。我的意思是,没有更多的地址行了,对吗?

我什至知道在我们的设施中,我们有戴尔数据库服务器,机器可寻址 8 GB RAM 和 32 位版本的SQL Server。是不是类似于EMS内存的20地址线8086,使用了一个旋转内存的窗口?

memory x86 capacity

9
推荐指数
1
解决办法
1万
查看次数

9
推荐指数
2
解决办法
6万
查看次数

如何运行 GPGPU 内存测试

我们使用了大量的 GPGPU 计算(主要使用 CUDA,但也使用一些 OpenCL)。通常,当用户运行代码时,代码仅在我们的一台主机上出现内存错误。我怀疑其中一张卡有问题。有时它会导致整个系统瘫痪,有时程序会崩溃。

全面测试 GPU 是否可能出现故障的最简单、最快和最彻底的方法是什么?

我知道有些程序是 nvidia 的 CUDA SDK 的一部分:

   deviceQuery
   nvidia-smi
Run Code Online (Sandbox Code Playgroud)

但我需要更彻底的东西。建议?经验?

memory graphics-processing-unit cuda

8
推荐指数
1
解决办法
7295
查看次数

内存在哪里(不,不是缓冲区或缓存)

谁能告诉我内存哪里去了:(不,这次既不是缓冲区也不是缓存)

# free
             total       used       free     shared    buffers     cached
Mem:       3928200    3868560      59640          0       2888      92924
-/+ buffers/cache:    3772748     155452
Swap:      4192956     226352    3966604 
Run Code Online (Sandbox Code Playgroud)

顶部,按内存排序,降序:

top - 13:42:06 up 1 day,  3:47,  2 users,  load average: 0.08, 0.12, 0.36
Tasks: 228 total,   1 running, 227 sleeping,   0 stopped,   0 zombie
Cpu0  :  2.0%us,  4.0%sy,  0.0%ni, 90.1%id,  0.0%wa,  0.0%hi,  4.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,  0.0%id,100.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3928200k total,  3868020k used,    60180k free,     2896k buffers
Swap:  4192956k …
Run Code Online (Sandbox Code Playgroud)

linux memory

8
推荐指数
1
解决办法
3476
查看次数

AMD 24 核服务器内存带宽

我需要一些帮助来确定我在服务器上的 Linux 下看到的内存带宽是否正常。这是服务器规范:

HP ProLiant DL165 G7
2x AMD Opteron 6164 HE 12-Core
40 GB RAM (10 x 4GB DDR1333)
Debian 6.0
Run Code Online (Sandbox Code Playgroud)

mbw在这台服务器上使用我得到以下数字:

foo1:~# mbw -n 3 1024
Long uses 8 bytes. Allocating 2*134217728 elements = 2147483648 bytes of memory.
Using 262144 bytes as blocks for memcpy block copy test.
Getting down to business... Doing 3 runs per test.
0   Method: MEMCPY  Elapsed: 0.58047    MiB: 1024.00000 Copy: 1764.082 MiB/s
1   Method: MEMCPY  Elapsed: 0.58012    MiB: 1024.00000 Copy: 1765.152 MiB/s …
Run Code Online (Sandbox Code Playgroud)

performance memory central-processing-unit hp numa

8
推荐指数
1
解决办法
1006
查看次数

如何增加分配给 IIS .NET 应用程序的内存?

我们使用在 Amazon EC2 上运行的 Windows 2008 R2 和 IIS 7。IIS 正在运行一个用 C# 编写的 .NET 应用程序。

我们遇到了性能问题,我想为应用程序提供更多内存,但我不知道该怎么做。如何控制 CLR 获得的内存量?

我是 IIS、.NET 和 CLR 的新手。如果我使用 Java,我将只使用 -Xmx 标志来增加 JVM 可用的内存(例如,-Xmx3000m 用于 3GB)。但是,我似乎无法弄清楚如何在 Windows 世界中做到这一点。

windows-server-2008 memory iis-7

8
推荐指数
1
解决办法
3万
查看次数

您如何衡量一组分叉进程的内存占用量?

假设我有一个使用 200MB 内存的进程,它 fork()s:

python -c "import os; data='x'*200000000; os.fork(); raw_input()"
Run Code Online (Sandbox Code Playgroud)

像“top”这样的程序将显示每个进程使用 200MB,而 SHRd 内存很少,因此看起来好像这些进程总共使用了 400MB。但是,因为 fork() 为进程的内存页实现了写时复制 (COW),所以实际情况是进程总共只使用了 200MB。

为什么 top 不显示 COW 的内存比例?有没有办法让它这样做?或者我可以使用另一个命令吗?

注意:OSX 上的“top”似乎有一个 RSHRD 列,可以满足我的期望。我的问题是针对 Linux。

linux memory top virtual-memory

8
推荐指数
1
解决办法
2640
查看次数

在 SGE 上跟踪作业的内存使用情况

我正在寻找有关如何精确计算我的工作在我的集群上使用了多少 RAM 的一些指导。我的工作不是多线程的,而是在单个 CPU 上运行。

当我运行我的工作并运行“top”时,我可以看到它使用了这么多内存......

VIRT: 45.6g
RES: 38g
SHR: 9600
Run Code Online (Sandbox Code Playgroud)

这(纠正我错误的地方)对我来说意味着我正在使用 38 Gigs 的真实 RAM,以及 7.6 Gigs 的可能已被转移到交换的东西。大约 40 Gig 的数字是我正在测试的工具的作者所说的我的工作应该使用的数字。

当我从 SGE(使用 qstat 或 qacct)获得这些数字时,困惑就来了。 qacct -j 7270916 在这里我看到

mem 2768.453
maxvmem 4.078G
Run Code Online (Sandbox Code Playgroud)

然而,这些都没有接近我知道我正在使用的 45.6 gig 的 RAM(尽管 maxvmem 听起来确实应该代表 45.6 gig)。

在作业运行时,我尝试使用此命令 qstat -j 7270916 ,其中看到了以下行:

usage 1: cpu=00:01:37, mem=168.12988 GBs, io=38.64676, vmem=1.665G, maxvmem=4.078G
Run Code Online (Sandbox Code Playgroud)

我想 mem 是运行中使用/释放/使用/释放的所有 RAM 的总和(它刚刚完成),但 maxvmem 仍然很低(远低于我预期的 45.6 gigs)。

所以我对 qcct 和 qstat 的使用都生成了与预期数字不一致的数字(我在顶部看到)。

有没有人有关于如何在运行完成后使用 SGE 命令获取有意义的 RAM 使用量的建议?

编辑:我使用的是 SGE 6.2u5

memory gridengine

8
推荐指数
1
解决办法
1万
查看次数

我的网络服务器上应该有多少可用内存?

我有一个网络服务器,目前托管着两个 Wordpress 站点和一些基于 Java 的协作软件。服务器有 2G 内存,目前使用了大约 1.8G 的可用内存。现在这里的内容几乎是一个试点项目,流量可以忽略不计,所以我认为很明显我将需要更多内存。

我想知道,如果我要发布它,我如何根据它获得的流量来预测我的内存需求。我在谷歌上四处寻找,我发现的东西有点脆弱。在根据服务器上的基本(无流量)负载计算内存需求时,是否应该使用一种很好的启发式方法?

作为参考,输出free -m可以在下面看到:

             total       used       free     shared    buffers     cached
Mem:          2048       1832        215          0          0          0
-/+ buffers/cache:       1832        215
Swap:            0          0          0
Run Code Online (Sandbox Code Playgroud)

对我来说,这看起来像是实际使用的内存,并不是由于缓存或其他任何原因造成的错觉。

我认为我的协作软件的需求必须经过实验测试,所以这里free -m没有运行该软件:

             total       used       free     shared    buffers     cached                                     
Mem:          2048       1109        938          0          0          0                                     
-/+ buffers/cache:       1109        938                                                                      
Swap:            0          0          0   
Run Code Online (Sandbox Code Playgroud)

我解决这个问题的计划 B 是向服务器添加一堆交换空间,为其提供一些流量并根据交换使用的数量进行调整。我只是想知道是否有人有一个很好的经验法则来估计我应该提前计划多少内存……或者我的想法是否疯狂。

非常感谢(我对此非常陌生)。

memory web-server wordpress apache-2.2

8
推荐指数
1
解决办法
2万
查看次数

正确理解 pm.max_children 调优

我做了一些调查,发现这个可以计算和调整pm.max_children

https://myshell.co.uk/blog/2012/07/adjusting-child-processes-for-php-fpm-nginx/

但例如:

  • 我的服务器上有 8Gb
  • 我正在托管 30 个网站
  • php-fpm 平均进程大小约为 40mb
  • php-fpm 最大进程大小约为 80mb
  • 我想为 php-fpm 进程分配最大 5Gb 的内存

如果我应用这个:

pm.max_children = 专用于 Web 服务器的总 RAM / 最大子进程大小

所以在我的情况下:

pm.max_children = 5120 / 80 = 64

但是如果我在每个 php-fpm 网站 conf 文件上添加pm.max_children = 64,这意味着每个网站都可以使用64个子进程X 1 个进程的大小(例如40mb)= 2560Mb

如果我们想象,同时所有 30 个网站都达到了 pm.max_children 值,我们将有:2560Mb(每个网站的最大值)x 30 个网站 = 76 800 Mb

我对么?

Si 是的,这意味着当许多网站托管在同一台服务器上时,我们必须将计算结果pm.max_children = 5120 / 80 = …

memory nginx web-server php-fpm php7

8
推荐指数
1
解决办法
3万
查看次数