我无法从我的设置中获得最大吞吐量。硬件如下:
软件 :
到目前为止,我基本上假设条带化 (RAID 0) 几个物理设备应该大致线性地提高性能。然而,这里的情况并非如此:
我想测量生产环境的合理压力测试结果。
如何通过分析apache日志来衡量req/sec?
apache2.2
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
Run Code Online (Sandbox Code Playgroud)
我可以使用 %t 和 %D 参数吗?
我想在 LAN 环境中调整 Windows 7 TCP 堆栈以提高速度。
一些背景信息:我已经安装了带有 Windows 2008R2、Windows 7 和带有 Citrix 内核的 Debian Lenny 的 Citrix XenServer,Windows 机器安装了工具,iperf服务器进程在不同的主机上运行,也是 Debian Lenny。服务器否则闲置,测试重复几次以确认结果。
虽然使用iperf2008R2 进行测试可以达到大约 600-700Mbps 且无需任何调整,但我找不到任何指南或参数集可以使 Windows 7 达到超过 150Mbps 的任何速度,而使用-w参数 to不会改变 TCP 窗口大小iperf。
我尝试使用netsh autotuining到disabled,experimental,normal和highlyrestricted-没有任何变化。更改congestionprovider没有任何作用,就像rss和 一样chimney。
将所有可用设置设置为与 Windows 2008R2 主机上相同的值无济于事。
总结一下:
iperf -w 65536:400-500Mbps …在几乎每个 FreeBSD 网络调优文档中,我都能找到:
# /boot/loader.conf
net.inet.tcp.tcbhashsize=4096
Run Code Online (Sandbox Code Playgroud)
这通常与一些无用的语句配对,例如“TCP 控制块哈希表调整”或“将此设置为合理的值”。man 4 tcp也没有多大帮助:
Run Code Online (Sandbox Code Playgroud)tcbhashsize Size of the TCP control-block hash table (read-only). This may be tuned using the kernel option TCBHASHSIZE or by setting net.inet.tcp.tcbhashsize in the loader(8).
我能找到的唯一涉及这个神秘事物的文档是优化 FreeBSD IP 和 TCP 堆栈中传输层下的协议控制块查找小节,但它的描述更多地是关于使用它的潜在瓶颈。这似乎与将新的 TCP 段与它们的侦听套接字匹配有关,但我不确定如何。
TCP 控制块究竟是做什么用的?为什么要将其哈希大小设置为 4096 或任何其他特定数字?
我最近给自己赠送了一台新的专用服务器,我正试图从中榨取最大的性能,以获得乐趣和学习。
我正在尝试实现该服务器每秒可以处理的最大可能请求数,目标是 500K 请求/秒,如此处所述 - http://lowlatencyweb.wordpress.com/2012/03/20/500000-requestssec-modern-http-servers -很快/
服务器详情
英特尔® 至强® E3-1270 4 核 (8 HT) x 3.4 GHz
内存 24 GB DDR3 ECC
硬盘空间 2,000 GB (2 x 2,000 SATA) RAID 软件 RAID 1
局域网 100mbps
操作系统 Centos 6.3 64 位
nginx
对于静态 txt 文件,我只能达到 35K 请求/秒。我在同一台机器上运行基准测试。我知道 NIC 限制和网络开销
ab -n100000 -c200 http://localhost/test.txt
Run Code Online (Sandbox Code Playgroud)
更新- 165K 请求/秒
我尝试了另一个名为的基准测试工具wrk,它给了我 165K 请求/秒。非常酷!
更新 2 - 250K 请求/秒
配置文件
#######################################################################
#
# This is the main Nginx configuration file.
# …Run Code Online (Sandbox Code Playgroud) 偶尔,在我的 Apache 错误日志中,我会发现:
[error] server reached MaxClients setting, consider raising the MaxClients setting
Run Code Online (Sandbox Code Playgroud)
由于内存不足的问题,我过去故意将 MaxClients 降低到 60,但我想确切地知道当服务器上达到此限制时用户端发生了什么。他们访问的页面加载时间是否更长?他们是否收到某种错误消息?
我的问题是...建议使用 NetBackup 中的什么多路复用因子/您是否将 Oracle RMAN 备份用于通过 1Gb/s 管理网络到 LTO3 的备份?
JB
背景:
使用 NetBackup 等企业备份工具时,存在多路复用的概念,即同时合并来自多个备份客户端的数据,以便尽快为现代高速磁带驱动器提供数据。
交织的并发客户端数据流的数量由复用因子决定。多路复用因子越高,传送到磁带机的数据就越多,但恢复速度越慢。
由于整体恢复速度主要取决于混乱(记录事件、确定磁带是否可用、从异地召回、负载、库存等)而不是实际磁带恢复速度,我有信心使用高系数进行文件系统备份.
具有大型数据集的 Oracle 备份通常一起恢复,这对文件系统备份提出了不同的挑战。
我正在寻找有关使用 Courier IMAP 提高 IMAP 搜索性能的技巧。当前版本是 4.2.1。与问题“快速搜索 IMAP? ”不同,我特别关注服务器端的改进。
在相当大的帐户上访问性能已经相当不错,但搜索速度很慢。是否有某种工具/附加组件可用于为各种有趣的邮件字段生成良好的索引?
在我的 CentOS 7 系统上,我习惯于tuned-adm在配置期间设置适合环境的配置文件,但在那之后,我再也没有更改该配置文件。似乎调整后的系统产生了一个/usr/bin/python -Es /usr/sbin/tuned -l -P用于动态监控和调整的进程 ( )。与我系统上的其他守护进程相比,这个进程使用了明显更多的内存。我想减少某个内存受限服务器上的非必要服务。如果我不使用涉及动态调整功耗等参数的配置文件,该tuned进程是否需要继续运行?我可以安全地停止该过程并从那时起保留我最初设置的配置文件吗?
我正在使用pgBouncer作为 PostgreSQL 的连接池系统。我的系统是 12 核、64GB RAM 和 1Gbps 网络接口,运行 Debian 8.1。现在我想将开放套接字连接的限制提高到 10.000 个并发客户端。在进行 DB 基准测试时,pgbench实用程序会阻止大约 950 个并发客户端,这似乎达到了 1024 个打开 fds 的限制,就像过去一样。我检查了fs.file-max内核参数和pgbench运行用户的资源限制:
# sysctl fs.file-max
fs.file-max = 6598264
# su - postgres
$ ulimit -Sn
65536
$ fgrep files /proc/self/limits
Max open files 65536 65536 files
$
Run Code Online (Sandbox Code Playgroud)
但是,限制proc表明pgBouncer(以用户身份运行postgres)的最大打开文件的软限制仅为 1024 个最大打开文件:
$ ps -e | fgrep pgbouncer
9840 ? 00:00:00 pgbouncer
$ fgrep files /proc/9840/limits
Limit …Run Code Online (Sandbox Code Playgroud) linux ×3
apache-2.2 ×2
networking ×2
performance ×2
backup ×1
centos ×1
courier ×1
database ×1
debian ×1
freebsd ×1
imap ×1
multiplexing ×1
netbackup ×1
nginx ×1
oracle ×1
raid ×1
scalability ×1
search ×1
sysctl ×1
web-server ×1
windows-7 ×1