Questions tagged «performance-tuning»

性能调整是修改系统以提高其效率的过程。这也称为优化。

3
CPU0被eth1中断淹没
我有一个在基于Ubuntu的Xen XCP内运行的Ubuntu VM。它在后面托管了一个基于FCGI的自定义HTTP服务nginx。 来自第一个CPU内核的负载ab 不足已达到饱和,其余的负载不足。 在/proc/interrupts我看到CPU0供应数量级的中断比任何其他核心订单。他们大多数来自eth1。 我可以做些什么来改善此VM的性能?有没有办法更均匀地平衡中断? 血腥细节: $ uname -a Linux MYHOST 2.6.38-15-虚拟#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 …


13
后缀性能
在ubuntu上运行postfix,每天发送大量邮件(约100万条消息)。负载极高,但就CPU和内存负载而言却不高。任何人都处于类似情况并且知道如何消除瓶颈? 此服务器上的所有邮件都出站。 我必须假设瓶颈是磁盘。 只是更新,这是iostat的样子: avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 0.12 99.88 0.00 0.00 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.00 12.38 0.00 2.48 0.00 118.81 48.00 0.00 0.00 0.00 0.00 sdb 1.49 22.28 72.28 42.57 629.70 1041.58 14.55 135.56 …

5
大型文件系统和高IOWAIT上的性能改进选项
我有一个通过SATA 3.0背板安装8x10TB HDD的Ubuntu 16.04备份服务器。8个硬盘组装成RAID6,正在使用EXT4文件系统。该文件系统存储大量的小文件,这些文件具有很多SEEK操作,但IO吞吐量低。实际上,每天都有来自不同服务器的许多小文件通过rsnapshot快照(多个INODES直接指向相同的文件。由于文件系统(60TB净值)超过了50%的使用率,我的性能非常差。使用率是75%, du -sch /backup-root/ 需要几天(!)。该机器具有8核和16G RAM。RAM由OS Filesystem Cache完全利用,由于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 …

3
postgres stats收集器进程生成的I / O过多
我将XenServer与具有本地postgres数据库的多个虚拟机一起使用。即使所有应用程序都未使用且数据库处于空闲状态,每个vm也会导致持续的存储网络流量,从而降低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 ... 如http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm中的建议。 这消除了连续写入,但是关闭统计信息跟踪是否有任何缺点? 还是应该将pg_stat_tmp目录放置在ramdisk上,以避免磁盘/网络流量? 该系统是最新的Debian 6.0.7(压缩版),具有postgres 8.4和约20个数据库(约50个表),总转储文件大小小于100 MB。

2
Ubuntu上的低延迟TCP设置
在我的实验室中,有一台用于测量的服务器正在Ubuntu上运行。并且有C程序,它通过TCP连接接收数据并应尽快发送答复。 组态 CPU:2个处理器x 4核-Intel(R)Xeon(R)CPU E5345 @ 2.33GHz 内存:12 GB NIC:英特尔公司80003ES2LAN千兆位以太网控制器/ 82546EB千兆位以太网控制器 网络交换机:Cisco Catalyst 2960 数据信息:数据块来了。每10毫秒。数据块大小约为 1000字节 接收数据包时的网络延迟非常关键(数十微秒很重要)。我对程序进行了最大程度的优化,但是我没有调整Ubuntu的经验。 在Ubuntu中可以配置什么以减少本地处理/发送数据包的延迟?

4
改善OpenVPN性能
我一直在尝试提高OpenVPN的性能,这是我当前的设置: cat /etc/openvpn/server.conf port 443 #- port proto tcp #- protocol dev tun #tun-mtu 1500 tun-mtu-extra 32 #mssfix 1450 tun-mtu 64800 mssfix 1440 reneg-sec 0 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login #plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login #- Comment this line if you are using FreeRADIUS #plugin /etc/openvpn/radiusplugin.so …

3
您优化Subversion配置的诀窍是什么?
对于Linux或Windows系统,您将采取什么技巧来优化Subversion服务器? 以下是我当前在Linux上使用HTTPS在Apache上提供服务并由LDAP身份验证支持的Active Directory的技巧。 在Apache上启用KeepAlive 禁用SVNPathAuthz 增加LDAP缓存 使用FSFS存储方法代替BDB 随时对此提出质疑。我没有确凿的证据证明FSFS可以胜任BDB,只有很多部落知识和传闻。

1
最佳sysctl.conf配置,可实现高负载-非常繁忙的内容流服务器
高负载,非常繁忙的内容流服务器的最佳sysctl.conf配置是什么?服务器从Amazon,s3等远程服务器获取内容,然后使用php将内容动态流式传输给用户,而无需将其保存到硬盘上。php使用CURL提取文件,然后使用flush()同时传输它,因此硬盘驱动器工作量不大……仅网络和带宽。 该服务器是四核xeon,具有1Gbit全双工NIC,8gb RAM和500GBx2的RAID。服务器内存使用率和cpu负载非常低。 我们在其上运行debian lenny和lighttpd2(是的,我知道它尚未发布:-))与php 5.3.6和带有spawn-fcgi的php fastcgi绑定在4个不同的Unix套接字上,每个套接字有20个孩子。最大fcgi请求为20,而lighttpd2配置中的mod_balancer模块可在SQF(短队列优先)配置中的这4个套接字之间平衡fastcgi请求。 我们的服务器使用大量带宽,即网络连接一直很忙。在100到200个并行连接之后,服务器开始减速,最终变得无响应,开始出现连接超时错误。当我们使用cpanel时,我们永远不会出现超时错误,因此这不是脚本问题。它必须是网络配置问题。 lighttpd2配置:工作进程= 8,保持活动请求为32,保持空闲超时为10秒,最大连接为8192。 我们当前的sysctl.conf内容为: net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_tw_recycle = 1 # Increase maximum amount of memory allocated to shm kernel.shmmax = 1073741824 # This will increase the amount of memory available for socket input/output queues net.ipv4.tcp_rmem = 4096 25165824 25165824 net.core.rmem_max = 25165824 …

1
在LVM中使用单个磁盘分区时,IOPS行为是什么?
我有一台ubuntu 14.04.1 LTS服务器,该服务器具有逻辑卷的LVM(由硬件RAID5支持)和一个名为“ dbstore-lv”和“ dbstore-vg”的卷组,它们具有从同一sdb磁盘创建的sdb1 sdb2 sdb3。该系统为42核和大约128G内存。尽管我看不到htop负载平均输出中的CPU峰值uptime为context switches〜43 +,并且vmstat显示iowait恒定为20-40,其中iowait 大约为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 …

1
当Apache到达MaxClients时,用户会看到什么?
有时,在我的Apache错误日志中,我会发现: [error] server reached MaxClients setting, consider raising the MaxClients setting 由于内存不足的问题,我过去曾有意将MaxClients降低到60,但是我想确切地知道当服务器上达到此限制时用户端发生了什么。他们正在访问的页面加载时间是否更长?他们收到某种错误消息吗?

1
Taskset和cpuset之间的区别
我正在尝试减少linux网络应用程序的延迟。我了解到,有两种工具可将程序“绑定”到特定的CPU内核:taskset和cpuset。 我应该选哪一个?它们在较低的水平上等效吗? (配置)我的应用程序具有单线程,并且应该以尽可能少的延迟通过快速LAN网络处理单个tcp连接(无需重新连接)。我走对了吗?

3
了解RedHat推荐的调整配置文件
我们将在约1000台服务器上推出已调优(和numad)的服务器,其中大多数是NetApp或3Par存储上的VMware服务器。 根据RedHats文档,我们应该选择virtual-guest配置文件。它的作用可以在这里看到:tuned.conf 我们正在将IO调度程序更改为NOOP,因为VMware和NetApp / 3Par都应该为我们做足够的调度。 但是,经过一番调查后,我不确定它们为什么会增加vm.dirty_ratio和kernel.sched_min_granularity_ns。 据我所知,vm.dirty_ratio增加到40%意味着对于内存为20GB的服务器,除非先vm.dirty_writeback_centisecs被击中,否则在任何给定的时间8GB都可能是脏的。在刷新这8GB的空间时,该应用程序的所有IO都将被阻止,直到释放脏页为止。 由于现在我们拥有更大的缓存,增加dirty_ratio可能意味着在峰值时具有更高的写入性能,但是当缓存填满IO时,将再次阻塞更长的时间(几秒钟)。 另一个是为什么他们增加了sched_min_granularity_ns。如果我理解正确,则增加该值将减少每个epoch(sched_latency_ns)的时间片数量,这意味着正在运行的任务将有更多时间来完成其工作。我可以理解这对于线程很少的应用程序来说是一件好事,但是对于例如。apache或其他线程很多的进程会不会适得其反?

1
为什么要在FreeBSD中更改net.inet.tcp.tcbhashsize?
在几乎每个FreeBSD网络调整文档中,我都能找到: # /boot/loader.conf net.inet.tcp.tcbhashsize=4096 这通常与一些无用的语句配对,例如“ 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). 我能找到的唯一涉及到这一神秘事物的文档是“ 优化FreeBSD IP和TCP堆栈”中“传输层”下的“协议控制块查找”小节,但其描述更多地是关于使用它的潜在瓶颈。这似乎与将新的TCP段匹配到其侦听套接字有关,但是我不确定如何。 TCP控制块到底是做什么用的?为什么要将其哈希大小设置为4096或任何其他特定数字?

5
Windows 7对LAN的网络性能调整
我想调整Windows 7 TCP堆栈以提高LAN环境中的速度。 背景信息:我已经在Citrix XenServer上设置了Windows 2008R2,Windows 7和带有Citrix内核的Debian Lenny,Windows机器安装了Tools,iperf服务器进程也在不同的主机上运行,​​Debian Lenny也运行。否则服务器处于空闲状态,重复测试几次以确认结果。 尽管使用iperf2008R2进行测试可以实现大约600-700Mbps的速度,而无需进行任何调整,但是我找不到任何指南或参数集,这些参数可以使Windows 7超过150Mbps且在TCP窗口大小不变的情况下使用-wto参数iperf。 我尝试使用netsh autotuining到disabled,experimental,normal和highlyrestricted-没有任何变化。改变congestionprovider不执行任何操作,就像rss和一样chimney。 将所有可用设置设置为与Windows 2008R2主机上相同的值无济于事。 总结一下: Windows 2008R2默认设置:600-700Mbps Debian,默认设置:600Mbps Windows 7默认设置:120Mbps Windows 7默认值iperf -w 65536:400-500Mbps 虽然我将缺少的400Mbps性能归咎于XenServer主机中笨拙的Realtek NIC(我可以从笔记本电脑到iperf服务器达到980Mbps),但这并不能解释为什么Windows 7如果不手动调整窗口大小就无法获得良好的性能。应用程序级别。 那么,如何调整Windows 7?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.