我正在寻找有关如何扩展服务器设置的资源。
我们目前在英国有一台 Rackspace 专用服务器,其规格如下:
HPDL385_G2_PrevGen
HP 单双核 Opteron 2214 (2.2Ghz)
4GB RAM
RAID 1 中的 2x 10,000 SCSI 驱动器
我们每月的流量高达 550,000 个 UV。
该站点运行 PHP 和 MySQL 设置。数据库受到了绝对的打击,我们有许多复杂的查询加入 multilpe 表。
我们正在使用 APC 进行 PHP 缓存。
我已经到了尽可能多地进行数据库和查询优化的阶段,并想知道下一步应该是什么......
我看过memcache,但我的印象是他需要大量的RAM,最好是一个专用的盒子......
下一步就是拥有两个盒子;一个用于数据库,一个用于 Apache?或者有没有我忽略的步骤。
我们的负载通常在 2 标记左右,但现在它高达 20!
穆宁的一些图表:

我需要将一个大文件(损坏的 MySQL 表 ~40GB)移动到单独的服务器上以修复它。(在我的生产服务器上尝试修复时,它很快杀死了服务器)。
为了做到这一点,我想将 .frm、.MYI 和 .MYD 文件从我的生产服务器同步到云服务器。
我正在将文件从 /var/lib/mysql/{database}/ 复制到 /home/{myuser} 这样我就不需要为 rsync 命令启用 root 访问权限并且 100% 确定数据库文件不是在使用中(它不应该被写入或读取,但显然我不想关闭我的生产数据库来确保)。
我尝试复制的第一个文件大约为 10GB。我正在从我的生产服务器的一部分转移到另一部分,即转移到相同的磁盘阵列。
不幸的是,复制命令“cp filename newfilename”占用了太多资源,导致服务器陷入停顿。
将文件复制到其他目录时如何使用更少的资源?(需要多长时间并不重要)。
假设我设法做到了这一点,那么在将文件 rsync 到云时,我可以期待什么资源使用?
谁能建议一个更好的方法来做到这一点?我的磁盘空间很快就用完了,所以需要尽快修复和归档这个表。
每隔几周我们就会遇到一个问题,即单个 IP 地址同时打开大量 Apache 进程。
它似乎每次都连接到类似的页面,但我们的 Apache 进程从正常的 ~20-25 个繁忙插槽变为最大 (256)。
然后这个 IP 地址不断刷新所有请求,增加我们服务器上的负载并显着降低站点速度。
每个实例的解决方案都很简单;我从 Apache“服务器状态”中找出 IP,并使用 IP 表规则阻止 IP。
不幸的是,IP 地址每次都会更改(它总是相似的,并且当我查找主机时说“bt openworld”),而且我无法 24/7 全天候登录并添加 IP 表规则。
需要明确的是,我们可以毫无问题地处理来自 Google 和其他搜索引擎的抓取,我不确定我们所遇到的是否是恶意的。
我怎样才能限制这种影响?
我们的设置是一个同时处理 MySQL 和 Apache 的服务器。
我被告知负载平衡器是对来自单个(但每次攻击都会改变)IP 地址的连接数进行速率限制的唯一方法。
我正在查看服务器升级的报价。(RHEL)。
服务器上将同时安装 Apache 和 MySQL,但升级的原因是为了提高 DB 性能。CPU已经大规模升级,但我知道磁盘速度也是一个因素。
所以 RAID 10 的性能比 RAID 5 快,但驱动速度有多大区别?
(顺便说一句,RAID 5 配置中的 15k 磁盘是我预算的最高点,因此不考虑 RAID 10 中的 4x15k 磁盘,我认为这将是最佳选择。)
我是 2 人团队的首席开发人员。我的合作伙伴刚刚加入该项目,尽管使用 GIT 进行版本控制等,但在代码部署方面,我们仍然陷于黑暗时代。
目前,我使用 Filezilla 通过 FTP 进行所有站点更新(这样我可以控制/负责所有上线的内容)。
我已经这样做了多年,但我们现在有一些大型 PHP 类 (300KB) 和大量流量。
简而言之,例如,每次我上传关键类“常规”时,站点都会关闭,直到文件上传完成。这一次只有 5/6 秒,但这越来越令人无法接受。
我意识到我可以以不同的名称上传文件,然后重命名这两个文件......但真的必须有更好的方法吗?
我听说过从另一台服务器同步代码,但我不知道这如何防止在上传时切换到新文件。
我们只有一台服务器(用于 DB 和 Apache),但也使用了一些云服务器(以 openx 为例)。
mysql ×2
performance ×2
apache-2.2 ×1
copy ×1
deployment ×1
filesystems ×1
ftp ×1
iptables ×1
linux ×1
php ×1
raid ×1
rhel5 ×1
rsync ×1
scale ×1
upload ×1