这是一个关于数据库容量规划的规范问题。
有关的:
我希望创建一个关于数据库容量规划工具和方法的规范问题。这是一个规范的问题。
显然,一般的工作流程是:
请随意描述适用于不同网络服务器、框架等的不同工具和技术,以及最佳实践。
我有 40 年的计算经验,但我从来没有构建过像这样的服务器,所以这可能是一个 n00b 问题。
我有一个客户将提供超高清音乐文件供下载。在这种情况下,这意味着 FLAC 压缩的 24/192Khz =~ 10GB/专辑。(不,我不想讨论产品的可取性,只是服务器配置。)目录将是大约 3,000 张专辑,包括超高和低清晰度版本(我猜是他们的 iPod),大约35-40TB 左右的原始数据。
由于这是一个非常专业的产品,市场规模相对较小(想想:在音频系统上花费超过 20,000 美元的人),这意味着服务器在大部分时间将 100% 闲置(或接近闲置)。我从 ColocationAmerica 获得了一个很好的主机托管服务,连接速度为 1Gbps,带宽约为 20 美元/TB,所以现在我只需要构建一个盒子来运送货物。
数据访问用例是一次写入/多次读取,所以我只想将软件 RAID 1 用于驱动器对。这将允许我(我认为)即时为发生故障的驱动器重新配置备用驱动器,从而能够在某些系统管理员注意到系统上的红灯之前开始重建第二个驱动器(他们可以免费换出)。如果不需要大多数驱动器,我可以让大多数驱动器进入睡眠/降速状态,那就太好了,这将是大多数驱动器的大部分时间。
我不需要太多的计算能力——这个东西只是把胖对象推到管道里——所以 CPU/主板可以非常适中,只要它可以支持这个数量的驱动器。
我目前正在考虑以下配置:
Chasis: Supermicro CSE-847E26-RJBOD1
Drives: 30 4TB SAS drives (Seagate ST4000NM0023 ?)
MB: SUPERMICRO MBD-X10SAE-O w/ 8GB
CPU: Xeon E3-1220V3 3.1GHz LGA 1150 80W Quad-Core Server
Run Code Online (Sandbox Code Playgroud)
那么,我是在朝着正确的方向前进,还是这是一种完全解决问题的 n00b / 恐龙方式?
更新以澄清几点:
在这个问题中,我想找出从单个服务器提供 40Gbps 的最佳配置/硬件。
情况
我们有一个视频共享代理服务器,可以从它后面的慢速存储服务器上卸载峰值。所有流量仅为 HTTP。服务器充当反向代理(未缓存在服务器上的文件)和网络服务器(存储在本地驱动器上的文件)。
目前有大约 100TB 的文件,并且在后端存储服务器上不断增长。
缓存机制是独立实现的,这个问题与缓存本身无关,因为它工作得很好——目前提供 14Gbps,传递给后端服务器的速度仅为 2Gbps。所以缓存使用很好。
目标
从单台机器实现 40Gbps 甚至更高的吞吐量。
硬件 1
硬件: Supermicro SC825, X11SSL-F, Xeon E3-1230v5 (4C/8T@3.4GHz), 16GB DDR4 RAM, 2x Supermicro 10G STGN-i1S (LACP L3+4)
固态硬盘:1x 512GB 三星,2x 500GB 三星,2x480GB Intel 535,1x 240GB Intel S3500
系统:
nginx:
如图所示,我们能够推动 12.5Gbps。不幸的是,服务器没有响应。
有两件事引起了我的注意。第一个是大量的 IRQ。在这种情况下,不幸的是我没有来自 /proc/interrupts 的图表。第二件事是高系统负载,我认为这是由于 kswapd0 仅使用 16G 内存时出现问题造成的。
硬件 2
硬件:Supermicro …
我想知道新安装的 vanilla Linux 系统(如 32 位 CentOS 5.10)总共读取了多少数据才能进入虚拟控制台 shell 提示?您知道,读取所有配置文件、加载二进制文件、内核映像等。
我正在启动 100 台 Linux 机器,它们的系统内容的 95% 是相同的并且将保持相同——这些机器是克隆的。我想将文件系统的相同/只读共享部分卸载到 NFS 存储,从那里安装它,然后像这样启动。只有文件系统的可写部分,如 /var、/tmp 和 /home,将保留在每台机器的本地。由于可能有数百台机器作为“集群”的一部分同时启动,我需要估计访问的 NFS 存储链接在启动时是否会成为瓶颈。
我正在寻找数量级的估计。我知道 Linux 启动过程的细节差异很大。我们说的是 10Mb 吗?100Mb?1Gb?
我有一个网络服务器,目前托管着两个 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 是向服务器添加一堆交换空间,为其提供一些流量并根据交换使用的数量进行调整。我只是想知道是否有人有一个很好的经验法则来估计我应该提前计划多少内存……或者我的想法是否疯狂。
非常感谢(我对此非常陌生)。
我在一个项目中,我们将在我们拥有的 Linux 服务器上托管 Ruby on Rails 应用程序。是否所有版本的 Linux 都能够托管 Rails 应用程序?如果不是,那么某些 Linux 发行版中存在哪些功能,而其他对于托管 Rails 应用程序必不可少的功能则没有?
什么时候开始向您的 Web 应用程序添加(或考虑添加)服务器?从单个服务器(DB 和 Web)到多个服务器有哪些困难?
例如:
大多数情况下,您从一个同时用于 DB 和 Web 的服务器开始,然后将您的 DB/Web 拆分到另一台服务器上,然后转到多个 Web 服务器(这会产生会话问题),然后可能是用于 DB 等的 NAS。
我打算租一个VPS。
Debian、Apache、Mysql、PHP 的基本设置需要多少内存?
基本上,我的意思是不考虑流量(每天点击量将低于 1000 次)。没有复杂的数据库或内存占用脚本。
作为参考,我会考虑比我需要的多 512MB。(但我不确定我有多正确。)
可能重复:运行 Wordpress、Apache、SVN 和 MySQL 需要多少 VPS ram?
不同之处在于,我特别询问 Debian、Apache、Mysql 和 PHP默认的Debian 配置。没有内存调整或用更轻的守护进程替换 Apache。
另一个问题也有非常不一致的答案。
我已阅读并理解您能否帮助我进行容量规划?,但我不确定我是否了解 DNS 服务器方案中的下一步。我认为我的 CPU 负载很高,或者我可能开始放弃查询,但我想在对它采取行动之前更好地了解我的服务器的负载。这对我来说尤其重要,因为众所周知,将基础设施扩展到 DDoS 负载正在失败。
为了了解我的环境,我应该分析什么?
benchmark ×3
linux ×2
load-testing ×2
memory ×2
web-server ×2
10gbethernet ×1
apache-2.2 ×1
boot ×1
database ×1
ddos ×1
hosting ×1
irq ×1
lamp ×1
nginx ×1
sas ×1
vps ×1
wordpress ×1
zfs ×1