标签: performance-tuning

CPU0 被 eth1 中断淹没

我有一个 Ubuntu VM,在基于 Ubuntu 的 Xen XCP 中运行。它托管基于 FCGI 的自定义 HTTP 服务,位于nginx.

下从负载ab 第一CPU芯饱和,其余为欠载。

/proc/interrupts我看来,CPU0 提供的中断比任何其他内核都多一个数量级。他们中的大多数来自eth1.

我可以做些什么来提高此 VM 的性能?有没有办法更均衡地平衡中断?


血腥细节:

$ uname -a
Linux MYHOST 2.6.38-15-virtual #59-Ubuntu SMP Fri Apr 27 16:40:18 UTC 2012 i686 i686 i386 GNU/Linux

$ lsb_release -a
没有可用的 LSB 模块。
分销商 ID: Ubuntu
描述:Ubuntu 11.04
发布:11.04
代号:natty

$ cat /proc/interrupts 
           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7       
283:113720624 0 0 0 0 0 0 0 xen-dyn-event …

linux ubuntu performance-tuning interrupts high-load

12
推荐指数
1
解决办法
2万
查看次数

postgres 统计信息收集器进程生成的 I/O 过多

我将 XenServer 与多个具有本地 postgres 数据库的虚拟机一起使用。即使所有应用程序都未使用且数据库处于空闲状态,每个虚拟机也会导致持续的存储网络流量,从而降低 iSCSI 存储设备的性能。

运行后,iotop我注意到 postgres stats 收集器进程进程以大约 2 MByte/s 的速率不断写入磁盘。

然后我通过编辑禁用了统计信息的收集/etc/postgresql/8.4/main/postgresql.conf

#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

track_activities = off
track_counts = off
...
Run Code Online (Sandbox Code Playgroud)

正如http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm 中所建议的。

这消除了连续写入,但是关闭统计跟踪有什么缺点吗?

或者我应该将 pg_stat_tmp 目录放在 ramdisk 上以避免磁盘/网络流量?

系统是最新的 Debian 6.0.7(squeeze),带有 postgres 8.4 和大约 20 个数据库,大约有 50 个表,总转储文件大小小于 100 MB。

postgresql performance performance-tuning database-performance

11
推荐指数
1
解决办法
5840
查看次数

配置 NTFS 文件系统以提高性能

我们有一个应用程序计划存储大约 1.1TB 的 XML 文件,平均大小为 8.5kb。

这些代表了 18 个月的滚动数据,每天创建大约 200,000 个新文件。

每个文件只会写入一次,然后有 3% 的机会在接下来的 18 个月内被读取少量 (<10) 次。

哪些 NTFS 选项对我们开放,有助于提高性能?

目前我们名单上的有:

编辑

关于碎片:我们计划使用 2k 集群大小来提高磁盘空间使用效率。每个文件将只写入一次(即没有文件编辑)。文件将在 18 个月后每天删除。

因此,我们认为碎片化不会是一个重大问题。

performance ntfs performance-tuning

10
推荐指数
2
解决办法
1万
查看次数

在非常大的文件系统和高 IOWAIT 上进行性能改进的选项

我有一个带有 8x10TB HDD 的 Ubuntu 16.04 备份服务器,通过 SATA 3.0 背板。8 个硬盘组装成 RAID6,正在使用 EXT4 文件系统。该文件系统存储了大量具有大量 SEEK 操作但 IO 吞吐量较低的小文件。事实上,每天都有许多来自不同服务器的小文件通过 rsnapshot 获取快照(多个 INODES 直接指向同一个文件。由于文件系统(60TB 网络)超过 50% 的使用率,我的性能非常差。目前,使用率为 75% 并且

du -sch /backup-root/
Run Code Online (Sandbox Code Playgroud)

需要几天(!)。机器有8核和16G内存。RAM 完全由 OS 文件系统缓存使用,由于 IOWAIT,8 个内核中的 7 个内核始终处于空闲状态。

Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          5af205b0-d622-41dd-990e-b4d660c12bd9
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options: …
Run Code Online (Sandbox Code Playgroud)

ext4 performance-tuning ubuntu-16.04

10
推荐指数
3
解决办法
2183
查看次数

优化 Subversion 配置的技巧是什么?

对于 Linux 或 Windows 系统,你有什么技巧来优化你的 Subversion 服务器?

以下是我目前使用 HTTPS 服务于 Apache 并由使用 LDAP 身份验证的 Active Directory 支持的 Linux 系统的技巧。

svn performance-tuning apache-2.2

9
推荐指数
2
解决办法
6408
查看次数

高负载的最佳 sysctl.conf 配置 - 非常繁忙的内容流服务器

什么是高负载、极其繁忙的内容流服务器的最佳 sysctl.conf 配置?服务器从远程服务器(如 amazon、s3 等)获取内容,然后使用 php 将内容动态流式传输给用户,而无需将其保存到硬盘上。php 使用 CURL 来获取文件,然后使用flush() 同时流式传输它,所以没有太多的硬盘工作......只有网络和带宽。

该服务器为四核至强,具有 1Gbit 全双工 NIC、8GB RAM 和 500GBx2 RAID。服务器内存使用率和 CPU 负载非常低。

我们在其上运行 debian lenny 和 lighttpd2(是的,我知道它还没有发布 :-) )和 php 5.3.6 和 php fastcgi 和 spawn-fcgi 绑定在 4 个不同的 unix 套接字上,每个套接字有 20 个孩子。最大 fcgi 请求为 20,在 lighttpd2 配置中使用 mod_balancer 模块来平衡这 4 个 SQF(短队列优先)配置中的套接字之间的 fastcgi 请求。

我们的服务器使用大量带宽,即网络连接一直很忙。就在 100 到 200 个并行连接之后,服务器开始变慢并最终变得无响应,开始出现连接超时错误。当我们有 cpanel 时,我们从来没有出现超时错误,所以它不可能是脚本问题。应该是网络配置问题。


lighttpd2 配置:worker processes = 8,keep alive requests 为32,keep alive idle timeout 为10 秒,最大连接数为8192。

我们当前的 sysctl.conf 内容是:

net.ipv4.tcp_fin_timeout = 1 …
Run Code Online (Sandbox Code Playgroud)

debian file-sharing performance-tuning lighttpd debian-lenny

9
推荐指数
1
解决办法
8045
查看次数

任务集和cpuset之间的区别

我正在尝试减少我的 linux 网络应用程序的延迟。我了解到有两种工具可以将程序“绑定”到特定的 CPU 内核:taskset 和 cpuset。

  1. 我应该更喜欢哪一个?它们在较低级别上是否等效?
  2. (处置)我的应用程序具有单线程,并且应该通过快速 LAN 网络以尽可能少的延迟处理单个 tcp 连接(无重新连接)。我在正确的路上吗?

central-processing-unit latency multi-core performance-tuning

9
推荐指数
1
解决办法
7603
查看次数

SQL Server 2005 上的 SHOWPLAN 权限有什么含义?

用户需要 SHOWPLAN 权限才能使用执行计划来调整查询。

此权限的含义是什么。授予用户权限是否安全?我在这里看到了安全说明,这与我无关。

还有其他需要注意的问题吗?从我看来,即使在生产数据库上,授予用户此权限似乎也不是问题。

谢谢您的帮助!

security performance-tuning sql-server sql-server-2005

8
推荐指数
1
解决办法
6323
查看次数

为什么要在 FreeBSD 中更改 net.inet.tcp.tcbhashsize?

在几乎每个 FreeBSD 网络调优文档中,我都能找到:

# /boot/loader.conf
net.inet.tcp.tcbhashsize=4096
Run Code Online (Sandbox Code Playgroud)

这通常与一些无用的语句配对,例如“TCP 控制块哈希表调整”或“将此设置为合理的值”。man 4 tcp也没有多大帮助:

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).
Run Code Online (Sandbox Code Playgroud)

我能找到的唯一涉及这个神秘事物的文档是优化 FreeBSD IP 和 TCP 堆栈中传输层下的协议控制块查找小节,但它的描述更多地是关于使用它的潜在瓶颈。这似乎与将新的 TCP 段与它们的侦听套接字匹配有关,但我不确定如何。

TCP 控制块究竟是做什么用的?为什么要将其哈希大小设置为 4096 或任何其他特定数字?

freebsd performance-tuning sysctl

8
推荐指数
1
解决办法
2240
查看次数

当 Apache 到达 MaxClients 时,用户会看到什么?

偶尔,在我的 Apache 错误日志中,我会发现:

[error] server reached MaxClients setting, consider raising the MaxClients setting
Run Code Online (Sandbox Code Playgroud)

由于内存不足的问题,我过去故意将 MaxClients 降低到 60,但我想确切地知道当服务器上达到此限制时用户端发生了什么。他们访问的页面加载时间是否更长?他们是否收到某种错误消息?

performance performance-tuning apache-2.2

8
推荐指数
1
解决办法
1732
查看次数