一旦每月的点击量超过 10 万次,这个社区的人们会说最大的障碍是什么?
我的情况:大量静态媒体(音频/视频/图像)由 S3/CDN 提供,但作为备份存储在本地(但未提供)。所有可以缓存的东西都会被缓存,大约 8 GB 内存可扩展到 32 GB。
目前,我们正在毫无问题地处理大约 10 万次点击,并且很想知道其他人遇到了哪些问题:负载平衡?内存问题?磁盘输入/输出?
感谢您的任何提示。我浏览了相关问题,他们回答得很好,但只是想得到更多反馈。
我有一台安装了单个 Intel 5130 双核 Xeon 的 HP ML350 G5 服务器。是否可以将其升级为双处理器系统?我查看了 quickspecs 并在网上搜索了几个小时,但未能找到结论性的答案。
是否像购买两个 Xeon E5405 和一个 VRM 一样简单,或者我需要注意哪些注意事项?
此外,quickspecs 显示 5130 支持高达 16 GB 的 RAM,但四核型号支持高达 32 GB。用于 5000Z 芯片组的英特尔 ARK 表示它总共支持 16 GB 的 RAM(但它没有指定是否是每个处理器)。
最后,我想从现有的具有 4 GB RAM 的 Xeon 5130 升级到具有 32 GB RAM 的两个 Xeon 5405。是否可以?
我偶然发现了四块来自 IBM 的 4GB PC2 5300F RAM(部件号 43X5061)。在我的 Dell Poweredge 1950 Rev 2 服务器中,目前有两个 512MB 的内存条,它们的规格似乎与我的四个新内存条的规格相同。他们都在上面写着 PC2-5300F-555-11。
我无法让服务器注册 4GB 记忆棒。我知道我的服务器支持这种大小的内存条,我尝试将它们放入服务器中配对(根据戴尔文档)、未配对和混合两种 RAM。当我只放入 4GB 记忆棒时,没有屏幕输出,状态显示显示“E2010 无内存”。
如果我同时放入 512MB 和 4GB 记忆棒,我确实得到了 BIOS 输出,但服务器拒绝通过 POST,理由是“以下 dimm 与内存控制器不兼容”,然后是带有 4GB 记忆棒的插槽列表。我已经尝试了所有可能的 RAM 和套接字排列,老实说我很难过。
512MB 和 4GB 内存条唯一显着的区别是 4GB 内存条上有 IBM 部件号,而 512MB 内存条上只有海力士标签。戴尔服务器实际上不支持带有 IBM 标签的内存吗?我的内存坏了吗?
这是两个不同的棍子并排的图片:

我有一台带有 Perc H710P RAID 控制器和 4 个连接的 3TB 驱动器的戴尔 T7600。在过去的几个月里,RAID 控制器在启动时间歇性地报告错误:“找不到启动设备”、“baseport 上的适配器没有响应”,磁盘经常报告为丢失或失败。
从那以后,我更换了 RAID 控制器、4 个硬盘驱动器,最后更换了系统的主板。
更换主板并重新启动几次后,出现错误
Single bit ECC errors were detected on the RAID controller.
Please contact technical support to resolve this issue.
Run Code Online (Sandbox Code Playgroud)
重新启动大约 20 次后,我还没有看到 ECC 错误。系统在其他方面似乎还可以,除了当系统完全空闲时磁盘风扇有时会开始全速吹气并且直到我重新启动才停止。
RAID 控制器的内存中是否存在 ECC 错误?或者,RAID控制器是否在系统内存中映射,而ECC错误真的在系统内存中?或者,驻留在 RAID 控制器中的 1GB 缓存中是否存在 ECC 错误?
我正在尝试使用 cgroups 来限制用户进程在具有大量内存(128 GB 或更多)的服务器上的内存使用。我们想要实现的是为 OS 和 root 进程保留大约 6GB 的 ram,其余的留给用户。我们希望确保我们始终有可用内存,并且我们不希望服务器积极交换。
如果限制设置得足够低( < 16GB ),这可以正常工作。用户进程被 cgred 正确分配到正确的 cgroup,一旦达到限制,oom 将终止内存饥渴的进程。
当我们将限制设置得更高时,问题就会出现。然后,如果进程使用超过 16G 的 ram,服务器将开始交换,即使内存使用量仍远低于限制并且有足够的 ram 可用。
是否有任何设置或某种最大值会限制我们可以在 cgroups 下授予访问权限的内存量?
这是更多信息:
我使用以下代码来模拟用户进程占用内存。代码在链表中跟踪分配的内存,以便在程序内部使用和访问内存,而不是仅使用 malloc 保留(并每次覆盖指针)。
/* gragram.c 的内容 */
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
struct testlink {
void *ram;
struct testlink *next;
};
int main (int argc, char *argv[]) {
int block=8192;
char buf[block];
void *ram=NULL;
FILE *frandom;
int nbproc,i;
pid_t pID;
struct …Run Code Online (Sandbox Code Playgroud) 如果可能的话,这将有助于我实现 0 停机时间。据我知道这是不是可能的,但希望确保。
我的 linux 页面缓存有一个很大的问题,这会减慢 IO。例如,如果我使用 dd 复制一个 lvm 分区,linux 会将数据缓存在缓冲区或缓存中 (free –m)。那不是问题,但是在缓冲区达到特殊值后,复制过程停止并减慢到几 mbs 甚至 kbs。我已经做了很多写入磁盘或 /dev/null 的测试,问题与源驱动器或目标无关。
详细:
结论:
问题要么与第二个 cpu 有关,要么与内存总量有关。我有一种“感觉”,问题可能是,每个 cpu 都有自己的 32GB ram,并且复制过程仅在 …
更新:
这是由于 nss-softkn 的一个已知问题引起的。见这篇文章:https : //www.splyt.com/blog/2014-05-16-optimizing-aws-nss-softoken
当我从我的 centos 6.5 机器上运行 free -m 时,我看到我只有大约 1400 mb 的可用内存,包括缓存。当我做 top 时,按内存排序并加起来我只看到大约 1600 个正在使用的进程。我应该有更多的空闲内存。这发生在我们的几个盒子上。
[root@db1 ~]# free -m
total used free shared buffers cached
Mem: 7840 7793 47 0 287 1357
-/+ buffers/cache: 6148 1692
Swap: 7983 7 7976
Run Code Online (Sandbox Code Playgroud)
最高输出
这是可视化进程消耗的内存的更好方法:

我已经使用 LXC 容器几年了,最近扩展了在容器环境中运行的应用程序类型。
我现在开始使用以下配置参数限制容器级别的资源:
lxc.cgroup.cpuset.cpus = 16-23
lxc.cgroup.memory.limit_in_bytes = 30720M
lxc.cgroup.memory.memsw.limit_in_bytes = 32768M
Run Code Online (Sandbox Code Playgroud)
我正在与一位使用“调整”工具 ( pgtune )的开发人员合作,为将在 LXC 环境中运行的 Postgres 数据库生成配置。此工具较旧,并且不太了解 VM 或容器。它根据系统可见的 RAM 提供大小建议。
那时我意识到在某些情况下,容器实例可以看到所有主机系统的 RAM (96GB) 可能是有害的。
是否有任何解决方法,或者它只是在使用 LXC 时给定的?
我有一个虚拟机(SQL 数据库服务器),我认为它的内存比它需要的要多,但是我不确定我可以将它减少到什么程度,因为我不明白什么是“正在使用”、“可用”、“已提交” ”和“缓存”内存的意思。
下面是我做了一些负载测试后任务管理器的屏幕截图。让我们假设负载不会比这更剧烈。

对我来说很明显 64GB 的 RAM 太多了。我想了解在不降低性能的情况下我可以带走多少。
这是否意味着我只需要 8GB,因为这超过了“使用中”的数量?或者在确定需要多少时是否需要包括“缓存”数量?
memory vmware-vsphere sql-server-2012 windows-server-2012-r2
memory ×10
linux ×3
centos6 ×2
amazon-ec2 ×1
cgroup ×1
containers ×1
dd ×1
dell-perc ×1
ecc ×1
hp ×1
ibm ×1
io ×1
lamp ×1
lxc ×1
memory-usage ×1
optimization ×1
performance ×1
php ×1
raid ×1
top ×1