使用 IIS(在 Windows 2003 上)时使用什么样的优化(性能或其他)?
目前,我每个网站使用 1 个应用程序池,但我认为我可以做更多:)
我正在尝试提高我在海外的一台服务器的吞吐量,在使用 wireshark 监控服务器和我的家用计算机之间的传输后,我很确定我的窗口大小有问题。
对于 ftp 传输,我的接收窗口大小为 14720。
Window size value: 115
Calculated window size: 14720
Window size scaling factor: 128
Run Code Online (Sandbox Code Playgroud)
我的发送窗口看起来像我设置的那样:
Window size value: 65335
Calculated window size: 261340
Window size scaling factor: 4
Run Code Online (Sandbox Code Playgroud)
那么如何修复 rwindow 呢?我已经在我的服务器上完成了 linux tcp 设置,一切似乎都很正常。时间戳打开,syncookies 关闭,缩放打开,sacks 打开,cubic 是拥塞控制方法,最大接收和发送窗口大小为 3mb。我试过更改默认的 tcp_wmem 和 tcp_rmem 值,但它什么也没做。
编辑:
当我关闭服务器上的自动调整和/或窗口缩放时,窗口缩小到 14600,这基本上是 MSS 的 10 倍。
5337 4.268584 2.2.2.2 1.1.1.1 FTP 106 Response: 227 Entering Passive Mode (2,2,2,2,240,15).
5338 4.268640 1.1.1.1 2.2.2.2 TCP 74 59855 > 61455 [SYN] Seq=0 Win=14600 Len=0 …Run Code Online (Sandbox Code Playgroud) 从概念上讲,空闲服务器的定义是什么?
您会查看哪些资源指标来假设服务器是否空闲?
你会看:
如果是这样,这些必须达到什么阈值才能确定某些东西是否空闲?
如果您纯粹查看这些统计数据,则重新启动和修补会扭曲您的结果。
linux windows optimization performance performance-monitoring
我有一个 ubuntu 14.04.1 LTS 服务器,它具有带有逻辑卷的 LVM(由硬件 RAID5 支持)和一个名为“dbstore-lv”和“dbstore-vg”的卷组,它们具有从同一个 sdb 磁盘创建的 sdb1 sdb2 sdb3。该系统为42核和约128G内存。虽然我没有看到htop来自uptime~43+的负载平均输出中的CPU 峰值以及 vmstat 显示恒定的 iowait 为 20-40,其中context switches不断在 80,000-150000 左右,在高峰时段甚至更多,但 CPU 空闲时间也徘徊在附近70-85。下面是输出iostat -xp 1在%util恒定为100%
avg-cpu: %user %nice %system %iowait %steal %idle
8.91 0.00 1.31 10.98 0.00 78.80
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 264.00 0.00 58.00 0.00 1428.00 49.24 0.02 0.28 0.00 0.28 0.21 1.20
sda1 0.00 0.00 …Run Code Online (Sandbox Code Playgroud) 如何分析 Linux + Apache + Mysql + Php 服务器的速度?
我有一个在 Ubuntu 8.04 上运行的带有大量修改的 MediaWiki 实例的服务器。它有点迟钝 - 我还没有做任何优化它的事情,所以我相信有很多容易实现的成果可以让它更快。
但是为了优化,您需要先进行测量。我如何找出哪个组件(Apache、Php、Mysql)占用了最多的时间来为页面提供服务?
互联网上有各种“参考资料”,深入讨论了在为磁盘阵列选择特定 RAID 条带大小(4KB 到 128KB 或更大)时要考虑的因素,但没有一个是非常权威且一致的彼此真的。
例如:
John's Tech Bits
Stripe Width and Size
RAID 优化指南
特别是,与文件系统类型(FAT、NTFS 等)、文件系统簇大小、缓存策略、磁盘驱动程序命令调度策略、是否可以执行多个命令相关的几个因素似乎在起作用。排队(标记排队)到有问题的驱动器等。
我正在寻找的是权威的、数据驱动的和参考的论文,关于所有需要考虑的因素到底是什么,以及最终如何采取分析方法为给定的应用程序选择最佳条带大小,而无需经过蛮力练习尝试所有这些因素的组合,看看什么会产生最佳性能。
从这个问题开始。Debian,如果这很重要。
我知道分叉进程之间共享了一些内存。那么我如何确定一个进程/一组分叉进程使用了多少内存?
使用在这个类似问题中推荐的 smem 工具,我得到如下值:
Command Swap USS PSS RSS
/usr/sbin/spamd --create-pr 0 16820 24974 41628
spamd chil 0 19388 27581 44176
spamd chil 0 32328 40038 55708
Run Code Online (Sandbox Code Playgroud)
我理解交换列,RSS 列是通常报告的(例如在 ps 中)。从阅读 smem 文档来看,USS 是专门为那个孩子准备的内存,而 PSS 是进程间共享的一部分内存。但是,将 USS 添加到 PSS 会产生比 RSS 更高的值,而且我认为共享的意义会更小(所以我可能解释不正确)。
我不依赖于 smem 工具。我只想以某种方式获得“内存使用”数字,该数字在一定程度上准确反映了进程正在使用的实际内存量。
我目前正在构建一个鞋匠和木偶设置。我做的一件事是用 puppet 禁用不需要的服务,但后来我想:我应该用 cobbler 删除它们,而不是在它们安装后禁用它们?
例如,我在 puppet 中的基类通知客户端禁用 smartd、cpuspeed、microcode_ctl 和 readahead_early,如果它是虚拟机。
那为什么不删除呢?如果我在稍后阶段确实需要其中一些软件包,我可以直接安装。当然,如果机器转换为物理硬件,我将不得不记住再次安装这些包。
我认为我的问题的最佳解决方案是创建一个傀儡类,如果它是虚拟的,则禁用服务 A,如果不是,则启用它。但是,也许其他人有其他见解?
该手册说,关于“优化表”:
“删除的行保存在链表中,随后的 INSERT 操作会重用旧的行位置。您可以使用 OPTIMIZE TABLE 回收未使用的空间并对数据文件进行碎片整理。”
所以我猜即使存储介质是SSD也会有一些性能提升(因为删除行的链表将被消除)。OTOH(再次猜测)性能提升不会像 HDD 那样显着,这也将受益于运行优化后更快的顺序读取。
那么在这种情况下是否值得运行优化?性能提升是否足以超过 SSD 预期寿命的减少(由于不必要的重新排列存储的数据)?。我说的是在其他方面非常适合优化的表(具有频繁更新的可变长度行)。
我想进一步优化 APC,但我不确定在哪里可以做些什么。首先是使用当前配置运行一周后的屏幕截图:

我现在有以下几点我不确定:
我最感兴趣的是回答这些问题。只有这样我才能更好地理解APC并自己做出调整。
一些详细信息:在此服务器上运行 Drupal 和 Magento。Drupal 也将其用作用户缓存。
我现在的问题是如何优化它。我可以分配更多的内存,但我不确定这是否真的有很大帮助。
更新:这是配置:
; The size of each shared memory segment in MB.
apc.shm_size = 192M
; Prevent files larger than this value from getting cached. Defaults to 1M.
apc.max_file_size = 2M
; The number of seconds a cache entry is allowed to idle in a slot in case
; this cache entry slot is needed by another entry.
apc.ttl = …Run Code Online (Sandbox Code Playgroud)