最近有人建议我在 PHP 中使用 FastCGI。现在我去了 FastCGI 页面并阅读了它,但我真的不明白它的优点是什么。
我听过/读过关于各种突袭风格的不同性能故事。我很好奇商定的最佳答案是什么。
我正在运行一个流量密集的网站,其中包含大量动态内容,主要是用户生成的。
该服务器是专用服务器,共有 4 个 Intel(R) Xeon(R) CPU X3210 @ 2.13GHz 处理器。我需要知道 ServerLimit 和 MaxClients apache 指令的最佳值,考虑到服务器有 4GB 的 RAM 并且 MySQL 数据库在单独的服务器上运行。该面板是带有 CentOS 的 DirectAdmin。
下面是我当前的指令,但在超过 5k 用户的高峰时段,注意到一个重要的延迟 - 这不完全是 MySQL 的错,因为页面似乎生成得很快(我实现了一个页面生成时间计数器),但是有很长的时间连接延迟,直到页面开始响应并发送到浏览器。
<IfModule prefork.c>
StartServers 800
MinSpareServers 20
MaxSpareServers 60
ServerLimit 900
MaxClients 900
MaxRequestsPerChild 2000
</IfModule>
Timeout 90
KeepAlive On
KeepAliveTimeout 5
Run Code Online (Sandbox Code Playgroud)
我应该提到使用 top 命令监控服务器,CPU 使用率在高峰时段永远不会超过 20% ~ 30%。MySQL 服务器当时也有 30~50% 的使用率,我一直在努力修复慢查询,但这是一个不同的问题。我知道这不是数据库瓶颈,因为静态页面在高峰时段也需要很长时间才能加载。
任何优化这些值的提示将不胜感激,谢谢。
还是应该将 perfmon 限制为具有模拟生产活动的负载测试的 Dev/QA 服务器?
我想运行 perfmon 两天(就像 Sql Server master Brent Ozar 建议的那样)来全面了解我的 web 应用程序的数据库性能。
如果有人了解 LVM 的工作原理,可以告诉我一个粗略的估计,使用 LVM(带有软件 RAID1)会慢多少,我将不胜感激。
(如果 LVM 卷当前处于快照模式执行写时复制,我不想知道 LVM 会慢多少)。我只需要粗略估计 LVM 在正常操作场景中会减慢读写速度。
任何链接也非常感谢我找不到关于这个问题的任何良好的性能基准。
我正在尝试从日志文件中计算每秒 SQL 查询的数量,我想通过将标准输出从 grep 管道传输到某个命令来实时执行此操作。(我正在做一些性能测试)
我可以自己写,但我确信这会存在。
我查看了 wc,但没有看到允许这样做的选项。
我还可以使用它通过从访问日志中提取尾部来计算每秒请求数。
Linux 上的后台刷新发生在有太多写入数据待处理(可通过 /proc/sys/vm/dirty_background_ratio 调整)或达到待处理写入超时(/proc/sys/vm/dirty_expire_centisecs)。除非达到另一个限制(/proc/sys/vm/dirty_ratio),否则可能会缓存更多写入的数据。进一步的写入将被阻止。
理论上,这应该创建一个后台进程写出脏页而不会干扰其他进程。实际上,它确实会干扰任何进行非缓存读取或同步写入的进程。糟糕。这是因为后台刷新实际上以 100% 的设备速度写入,此时任何其他设备请求都将被延迟(因为路上的所有队列和写入缓存都已填满)。
有没有办法限制刷新过程每秒执行的请求数量,或者以其他方式有效地优先考虑其他设备 I/O?
我需要为大约 10 GB 的数据设置一个内存存储系统,其中包含许多 100 kb 的单个文件(图像)。将会有大量的读取和相当周期性的写入(添加新文件,删除一些旧文件)。
现在,我知道tmpfs 的行为就像一个常规文件系统,例如,您可以使用df检查空闲/已用空间,这是一个很好的功能。但是,我感兴趣的是ramfs是否会在 IO 操作的速度方面提供一些优势。我知道在使用ramfs时我无法控制消耗的内存大小,并且如果它完全消耗可用 RAM,我的系统可能会挂起,但这在这种情况下不会成为问题。
总而言之,我感兴趣:
- 性能方面,哪个更快:ramfs或tmpfs(可能是为什么)?
- tmpfs 什么时候使用交换空间?它是否将已保存的数据移动到交换(为当前正在运行的其他程序释放 RAM)或仅在那时没有可用 RAM 时才移动新数据?
我们将有一台机器在工作,在最佳性能下,每小时应该能够推送50(“写磁头”)x 75GB的数据。这是约 1100MB/s 写入速度的峰值性能。为了从机器上得到它,它需要两条 10GBi 线。我的问题是什么样的服务器+技术可以处理/存储这样的数据流?
目前对于数据存储,我们使用 ZFS,尽管写入速度从来都不是问题。(我们甚至还没有接近这些速度)ZFS(Linux 上的 zfs)会是一个选择吗?我们还需要存储大量数据,“IT 指南”建议总共存储 50-75 TB 之间的数据。因此,除非我们想提供我们的第一个孩子,否则它可能不能全部是 SSD。
基于优秀回复的一些补充:
我在其中一篇 VMware KB 文章中读到快照将直接影响 VM 性能。
但是我的团队一直在问我快照如何影响性能。
我想在快照是性能杀手的声明背后给他们充分的理由。
谁能解释一些关于快照实际上如何影响性能的理论?仅仅是因为硬盘的磁盘I/O速率会很慢吗?
performance ×10
linux ×3
apache-2.2 ×2
fastcgi ×1
filesystems ×1
hard-drive ×1
hardware ×1
lvm ×1
mod-php ×1
optimization ×1
perfmon ×1
php ×1
raid ×1
ramdisk ×1
snapshot ×1
sql-server ×1
storage ×1
tmpfs ×1
vmware-esxi ×1
write ×1
zfs ×1