Questions tagged «performance»

有关服务器硬件和软件性能或网络性能的问题。

7
DisablePagingExecutive注册表更改是否有任何实际效果?
过去,在许多计算机上,在不同版本的Windows(2000,XP和无Vista)上,我都启用了DisablePagingExecutive来尝试提高性能。在每种情况下,我都有足够的内存,在当前情况下尤其如此。但是,启用此注册表项调整并重新启动后,过了一会儿我检查了任务管理器,即使我有2GB的可用物理内存,我仍然显示了很大一部分内核分页到磁盘。 有人成功使用过此调整吗?曾经吗 检查任务管理器(“性能”选项卡->“内核内存”部分)时,也许我查看的指示器不正确,但是我想防止Windows将所有可能的页面分页到磁盘,尤其是考虑到Windows中提供的内存量这些天的台式机。似乎应该存在一个“除非存在极大的内存压力,否则不分页到磁盘”选项-是否存在?

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
IPoIB(基于InfiniBand的IP)与RDMA性能
我已经部分继承了Linux HA群集,该群集的中心目前用于在两个Debian主机之间通过IPoIB(基于InfiniBand的IP)与DRBD 8进行连接。它没有坏,所以我不会修复。 我还注意到DRBD 9支持RDMA,因此将来可能会出现问题,即是否通过RDMA(即“本地” InfiniBand)用DRBD 9替换连接。 由于我不想在生产系统上运行性能测试,因此我想知道:是否已发布IPoIB与RDMA / InfiniBand的性能比较。例如,我能否期望从IPoIB切换到10%,50%或100%的数量级来获得带宽/等待时间收益?会发生什么?

2
最新版本的Linux中更高的TCP延迟
在我的研究小组中,我们最近将机器上的操作系统从Red Hat 6.2升级到Debian 8.3,并观察到机器之间通过集成的Intel 1G NIC进行的TCP往返时间从大约110µs翻了一番,达到了220µs。 最初,我认为这是一个配置问题,因此我将所有sysctl配置(例如tcp_low_latency=1)从未升级的Red Hat计算机复制到了Debian计算机,但这并不能解决问题。接下来,我认为这可能是Linux发行问题,并在计算机上安装了Red Hat 7.2,但是往返时间保持在220µs左右。 最后,我发现问题可能出在Linux内核版本上,因为Debian 8.3和Red Hat 7.2都使用了内核3.x,而Red Hat 6.2使用了内核2.6。因此,要进行测试,我安装了带有Linux内核2.6和Bingo的Debian 6.0!时间再次很快达到110µs。 其他人是否在最新版本的Linux中也经历了这些更高的延迟,是否有已知的解决方法? 最低工作实例 下面是一个可用于基准测试延迟的C ++应用程序。它通过发送一条消息,等待响应,然后发送下一条消息来测量延迟。它对100字节的消息执行100,000次。因此,我们可以将客户端的执行时间除以100,000,以获得往返延迟。要使用此方法首先编译程序: g++ -o socketpingpong -O3 -std=c++0x Server.cpp 接下来,在主机上运行应用程序的服务器端版本(例如192.168.0.101)。我们指定IP以确保我们托管在众所周知的接口上。 socketpingpong 192.168.0.101 然后使用Unix实用程序time测量客户端的执行时间。 time socketpingpong 192.168.0.101 client 在具有相同硬件的两台Debian 8.3主机之间运行该实验可获得以下结果。 real 0m22.743s user 0m0.124s sys 0m1.992s Debian 6.0的结果是 real 0m11.448s user 0m0.716s sys …

1
几个月后ZFS的极端减慢
我有一个通用服务器,可以为许多用户提供邮件,DNS,Web,数据库和其他一些服务。 它具有3.40 GHz的Xeon E3-1275、16 GB ECC RAM。运行Linux内核4.2.3,以及Linux上的ZFS 0.6.5.3。 磁盘布局是2个Seagate ST32000641AS 2 TB驱动器和1个Samsung 840 Pro 256 GB SSD 我在RAID-1镜像中拥有2个HD,而SSD充当了缓存和日志设备,全部在ZFS中进行管理。 当我第一次设置系统时,它的速度非常快。没有真正的基准,只是...快速。 现在,我注意到速度极慢,特别是在保存所有maildirs的文件系统上。对于仅46 GB的邮件,每晚进行备份需要90分钟以上。有时,备份会导致极高的负载,以至于系统长达6个小时几乎无响应。 在这些减速期间,我已经运行zpool iostat zroot(我的池名为zroot),并且看到的写入速度为100-200kbytes / sec。没有明显的IO错误,磁盘似乎并没有特别用力,但是读取速度却几乎无法使用。 奇怪的是,我在运行FreeBSD的另一台机器上拥有完全相同的体验,但使用的是类似规格的硬件,尽管没有SSD。它工作了好几个月,然后以相同的方式变慢了。 我一直怀疑:我使用zfs-auto-snapshot来创建每个文件系统的滚动快照。它会创建15分钟,每小时,每天和每月的快照,并保留一定数量的快照,并删除最旧的快照。这意味着随着时间的推移,每个文件系统上已经创建并销毁了数千个快照。这是我可以想到的唯一持续进行的文件系统级操作,具有累积作用。我尝试销毁所有快照(但保持进程运行,创建新快照),但没有发现任何变化。 不断创建和销毁快照是否存在问题?我发现拥有它们是一个非常有价值的工具,并且导致人们相信它们(除了磁盘空间之外)或多或少为零成本。 还有其他可能导致此问题的原因吗? 编辑:命令输出 输出zpool list: NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT zroot 1.81T 282G 1.54T - 22% 15% …

3
Linux:为什么使用性能调节器时CPU频率会波动?
我正在使用Debian 8 amd64机器进行基准测试。在实验期间,我希望CPU以固定频率(最好是最大频率)运行。这将排除CPU时钟速度成为结果变化的来源。 经过一番阅读之后,似乎正确的做法是将CPU调节器更改为performance,这在Linux内核文档中进行了介绍: CPUfreq调节器“性能”将CPU静态设置为scale_min_freq和scale_max_freq边界内的最高频率。 遗憾的是,有关进一步的细节scaling_min_freq,并scaling_max_freq没有提供。希望不要紧,因为使用的CPU频率是间隔的最大值。 因此,我已使用cpufreq-set启用了此调控器: $ cat / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor 性能 性能 性能 性能 而且,出于良好的考虑,我还在BIOS中禁用了涡轮增压模式: $ cat / sys / devices / system / cpu / intel_pstate / no_turbo 1个 根据性能调节器的上述说明,我希望CPU时钟速度不会波动。但是,如果我反复跑步cpufreq-info,我会看到时钟速度在波动: $ cpufreq-info | grep'当前CPU fr' …

3
NGINX非常低效地提供大型mp4文件
我目前在Centos 6.6操作系统上运行nginx / 1.0.15。服务器具有以下规格: 英特尔(R)凌动(TM)CPU C2750 @ 2.40GHz(8核) 32GB内存 5 x 6000 GB 7200 RPM(Raid 10) 问题 该服务器具有1Gbit / s的连接,但是在400-500 mbit / s之后它会达到顶峰并出现瓶颈。服务在大约100个连接处开始下降..并且服务器的速度急剧下降(尽管仍有50%的带宽可用) NGINX服务器严格用于提供静态.mp4文件。每个文件通常为400-1200MB(平均700MB) 我尝试了许多配置,几乎所有配置都给了我相同的结果..我非常沮丧。 服务器负载也永远不会超过0.3。 我的配置中是否有任何公然错误或误导的内容?可能有帮助。 配置 /etc/nginx/nginx.conf user nginx; worker_processes 9; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 51200; use epoll; } worker_rlimit_nofile 600000; http { include /etc/nginx/mime.types; …

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

3
为什么服务器使用SAS而不是SSD?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为服务器故障的主题。 5年前关闭。 我想知道为什么服务器仍然带有SAS磁盘而不是SSD磁盘?我知道SAS的速度比普通硬盘快,但仍然比SSD慢得多。我认为它们也更昂贵: 那么这是怎么回事?

4
如何为CentOS 6配置24 x 1.2 TB驱动器的RAID 5,尤其是条带大小?
对于具有24个1.2TB磁盘(和1TB RAM)的Dell R920,我希望为快速IO设置RAID 5配置。该服务器将用于托管KVM VM,该KVM VM将读取/写入各种大小的文件,包括非常大的文件。我对数据安全性并不特别感兴趣,因为如果服务器由于任何原因发生故障,我们将在更换发生故障的部件后从裸机重新配置服务器。 因此,性能是主要问题。 我们之所以考虑使用RAID 5,是因为它允许我们在多个主轴上分配数据,因此可以提供更好的性能,尽管不是我们的主要关注点,但是它也可以为我们提供一些数据保护。我们的NIC是双10Gbps。 我将这个问题限制为RAID 5仅是因为我们认为这将提供最佳性能。只有当有令人信服的性能原因时,我们才会考虑其他因素。但是,我想我更喜欢与RAID 5配置有关的答案。 好的,根据以上所述,这是我们当前的配置思想: 24个硬盘:RMCP3:1.2TB,10K,2.5“ 6Gbps RAID控制器:H730P,12Gbps SAS支持,2GB NV缓存 1个热备用(如果驱动器确实发生故障,只是为了给我们更长的使用寿命) 23个数据驱动器(其中1个作为奇偶校验,剩余22个用于数据) 条带大小:1MB(1MB / 22个数据驱动器=每个磁盘〜46.5KB,或者,我是否误解了条带大小)? 读取策略:自适应预读 写策略:写回 磁盘缓存策略:已启用 如果数据驱动器上的条带大小为TOTAL,那么我认为每个驱动器〜46.5KB将为我们提供非常好的吞吐量。如果条带大小是每个主轴的,那么我就错了。 条带大小是否也占用单个文件的大小?例如,如果有一个2KB的文件,那么选择1MB的条带大小是否意味着我们要浪费几乎整个兆字节?还是一个条带中可以存在多个文件? 最后,当我们安装CentOS 6.5(或最新版本)时,是否需要做一些特别的事情来确保文件系统最佳地使用RAID?例如,mkfs.ext4具有-E跨度选项,我被告知应对应于RAID配置。但是,在安装CentOS期间,有什么方法可以做到这一点? 非常感谢您为快速IO配置RAID 5的想法。

3
为什么vSphere ESXi 5.5中的Linux VM会显示磁盘I / O延迟显着增加?
我很沮丧,希望其他人能认识到此问题的症状。 硬件:新款Dell T110 II,2.9 GHz双核Pentium G850,板载SATA控制器,包装盒内装有一个新的500 GB 7200 RPM有线硬盘驱动器,其他驱动器位于内部但尚未安装。没有RAID。软件:VMware ESXi 5.5.0(内部版本1746018)+ vSphere Client下的全新CentOS 6.5虚拟机。分配了2.5 GB RAM。该磁盘是CentOS提供的设置方式,即作为LVM卷组内的一个卷,只是我跳过了使用单独的/ home并仅使用/和/ boot的方式。修补了CentOS,修补了ESXi,在VM中安装了最新的VMware工具。系统上没有用户,没有服务在运行,磁盘上没有文件,只有操作系统安装。我正在通过vSphere Client中的VM虚拟控制台与VM进行交互。 在继续之前,我想检查一下我是否或多或少合理地配置了东西。我以root用户身份在VM的shell中运行以下命令: for i in 1 2 3 4 5 6 7 8 9 10; do dd if=/dev/zero of=/test.img bs=8k count=256k conv=fdatasync done 即,只需重复dd命令10次,这将导致每次打印传输速率。结果令人不安。它很好地开始了: 262144+0 records in 262144+0 records out 2147483648 bytes …

3
添加CPU会降低MySQL 5.5(Debian)的性能
我即将在OpenVZ容器中设置数据库服务器(MySQL),我一直在想应该为它分配多少CPU。我决定进行基准测试。我比较了两个OS / MySQL发行版,并测试了它们在1、2、3和4个CPU上的性能。 第一个软件配置是: CentOS版本6.5(最终版) 适用于redhat-linux-gnu(x86_64)的mysql Ver 14.14 Distrib 5.1.71,使用readline 5.1 第二: Debian GNU / Linux 7 \ n \ l 适用于使用readline 6.2的debian-linux-gnu(x86_64)的mysql Ver 14.14 Distrib 5.5.31 两者都在同一内核上运行-2.6.32-openvz-042stab083.2-amd64#1 SMP Fri Nov 8 17:59:25 MSK 2013 x86_64 GNU / Linux。 所有软件都是从软件包中安装的,并且可以直接使用,而无需进行任何自定义配置调整。 硬件:6GB RAM,1-4个CPU 3.5 GHz。 为了进行基准测试,我在以下情况下使用了sysbench: sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root …

2
为什么Postgres闲置95%,没有文件I / O?
我在OpenStack云的8核Ubuntu 12.04 VM上运行了TileMill / PostGIS堆栈。这是对非常相似的系统的重建,该系统上周在非常相似的硬件(相同的云,但我认为是不同的物理硬件)上很好地运行。我试图完全按照原来的方式重建堆栈(使用我构建的一些脚本)。 一切都在运行,但是数据库执行查询的速度非常慢,最终以非常缓慢的切片生成来体现自己。一个示例查询(计算澳大利亚每个城镇半径内的酒吧数量),以前花费了大约10到20秒,现在却超过了10分钟: explain (analyze, buffers) update places set pubs = (select count(*) from planet_osm_point p where p.amenity = 'pub' and st_dwithin(p.way,places.way,scope)) + (select count(*) from planet_osm_polygon p where p.amenity = 'pub' and st_dwithin(p.way,places.way,scope)) ; Update on places (cost=0.00..948254806.93 rows=9037 width=160) (actual time=623321.558..623321.558 rows=0 loops=1) Buffers: shared …

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或其他线程很多的进程会不会适得其反?

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.