Questions tagged «performance»

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

4
限制Linux后台刷新(脏页面)
当过多的写入数据挂起(可通过/ proc / sys / vm / dirty_background_ratio进行调整)或达到挂起写入的超时时间(/ proc / sys / vm / dirty_expire_centisecs)时,将在Linux上进行后台刷新。除非达到另一个限制(/ proc / sys / vm / dirty_ratio),否则可能会缓存更多写入的数据。进一步的写操作将被阻止。 从理论上讲,这应该创建一个后台进程,写出脏页而不干扰其他进程。实际上,它会干扰任何进行未缓存读取或同步写入的进程。不好 这是因为后台刷新实际上以100%的设备速度写入,并且此时任何其他设备请求都将被延迟(因为路上的所有队列和写入缓存均已满)。 有没有一种方法可以限制刷新过程每秒执行的请求数量,或者有效地对其他设备I / O进行优先级排序?

4
如何在RabbitMQ和ZeroMQ或其他之间进行选择?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我正在寻找一种快速可靠的排队系统,并且可能会在整个计算机上传播。平台是Linux。开源是可取的。 RabbitMQ和ZeroMQ看起来都不错,但是我没有使用这些或任何其他排队系统的经验。你能为我指出正确的方向吗?


5
是否可以使用Memcache守护程序池更有效地共享会话?
我们正在从1个Web服务器设置过渡到两个Web服务器设置,我需要开始在两个负载平衡的计算机之间共享PHP会话。我们已经安装并启动了memcached,因此我感到很惊讶,我只需更改文件中的3行(session.save_handler和session.save_path)就可以完成新服务器之间的共享会话:php.ini 我更换: session.save_handler = files 与: session.save_handler = memcache 然后在主Web服务器上,将设置session.save_path为指向localhost: session.save_path="tcp://localhost:11211" 在从属网络服务器上,我将设置session.save_path为指向主服务器: session.save_path="tcp://192.168.0.1:11211" 工作完成,我对其进行了测试,并且可以正常工作。但... 显然,使用memcache意味着会话在RAM中,如果计算机重新启动或memcache守护进程崩溃,会话将丢失-我对此有点担心,但是我对两个Web服务器之间的网络流量有些担心(尤其是我们会扩大规模),因为只要有人将负载平衡到从属Web服务器上,他们的会话就会从主Web服务器通过网络获取。我想知道是否可以定义两个,save_paths以便机器在使用网络之前先查看自己的会话存储。例如: 主: session.save_path="tcp://localhost:11211, tcp://192.168.0.2:11211" 奴隶: session.save_path="tcp://localhost:11211, tcp://192.168.0.1:11211" 这样可以在服务器之间成功共享会话并提高性能吗?即节省网络流量50%的时间。还是这种技术仅用于故障转移(例如,当一个内存缓存守护程序无法访问时)? 注意:我并不是真正在问有关Memcache复制的问题-有关PHP Memcache客户端是否可以在池中的每个Memcache守护程序内部达到峰值,如果找到一个则返回一个会话,如果找不到则仅创建一个新会话在所有商店。在写这篇文章的时候,我想我在向PHP提出很多要求,哈哈... 假设:没有粘性会话,循环负载平衡,LAMP服务器。

11
是否有禁用硬件辅助虚拟化的充分理由?
最近,我们有许多戴尔的服务器,所有这些服务器的BIOS中都禁用了硬件辅助虚拟化。 据我所知,硬件辅助虚拟化是一件好事-那么戴尔为什么要禁用它呢?如果计算机不充当虚拟机主机,是否会有性能开销?有安全性问题吗? 如果与您的答案有关,我们将主要使用: 主机操作系统:Windows Server 2003 Enterprise R2(32位) 来宾操作系统:Windows Server 2003 Enterprise R2(32位) VMM:Virtual Server 2005企业R2 SP1


3
x86 / x64虚拟化有多少开销?
对于使用Intel硬件虚拟化的Win64主机和Linux64 guest虚拟机,以下每个操作中x86 / x64虚拟化(我可能将使用VirtualBox,可能的VMWare,绝对不是半虚拟化)有多少开销? 完全受CPU约束的用户模式64位代码 完全受CPU约束的用户模式32位代码 将文件I / O传输到硬盘驱动器(我最关心的是吞吐量,而不是延迟) 网络I / O 线程同步原语(互斥量,信号量,条件变量) 线程上下文切换 原子操作(使用lock前缀,例如比较和交换) 我主要对硬件辅助的x64情况(Intel和AMD)感兴趣,但也不会介意无辅助的二进制翻译和x86(即32位主机和来宾)情况。我对半虚拟化不感兴趣。

9
完整的硬盘驱动器加密会对性能产生什么影响?
我们正在使用HP笔记本电脑,并且有一项政策是打开HP的硬盘驱动器加密,以在丢失/被盗时保护客户端数据库和IP。 我想知道在这种情况下是否有任何性能下降的证据?这些机器主要用作开发工作站。这里的轶事证据表明机器速度较慢。 我们是否应该使用另一种方法(即仅加密敏感数据而不是整个磁盘)?

1
如何向VMware管理员描述我们的应用程序对VMware性能的要求?
通常,基于Debian稳定的现场应用程序的安装通常在虚拟机中运行-通常在VMware ESXi中。在一般情况下,我们无法了解或影响其虚拟化环境,也无法访问例如VMware vCenter客户端或类似产品。我在这里重点介绍VMware,因为到目前为止,这是我们看到的最常见的情况。 我们希望: 告诉客户的VMware管理员:只要满足性能标准X,Y和Z,您就可以在您的VMware ESX环境中运行我们的应用程序。 即使在正在运行的系统上,也能够确定条件X,Y和Z是否实际上连续满足(例如,现在也是如此)(我们无法停止应用程序并运行基准测试,而初始基准测试也无法满足要求,因为虚拟环境随时间而变化)。 确信如果满足标准X,Y和Z,我们将有足够的虚拟硬件资源来以令人满意的性能运行我们的应用程序。 现在X,Y和Z是什么? 我们一次又一次地看到,当出现性能问题时,问题不在于我们的应用程序,而在于虚拟化环境。例如,另一个虚拟机使用大量的CPU,内存或实际存储磁盘的SAN,除了我们的应用程序外,它们还会大量使用。我们目前无法证明或反驳。 从理论上讲,有时我们的应用程序速度很慢... ;-) 如何确定导致性能问题的根本原因:虚拟环境或我们的应用程序? CPU,内存和DISK I / O通常存在3个性能问题区域。 中央处理器 在例如VMware中,管理员可以指定保留和限制(以MHz表示),但是例如在一台ESX主机上的512MHz是否与另一台ESX主机上的512MHz完全相同,可能是在完全不同的ESX群集中吗? 以及如何衡量我们是否真的得到了呢?当我们的应用程序运行时,我们也许可以看到我们在4个CPU上的CPU利用率为212%。是因为我们的应用程序执行大量操作,还是因为同一主机上的另一个VM正在运行CPU密集型任务并使用了所有CPU? 记忆(气球?) 如果我们要求例如通常配置的16GB RAM,但是由于气球增加,我们实际上只能得到4GB,令人惊讶的是,我们的应用程序性能很差。 有人可以向VMware工具询问当前的膨胀,但是我们发现它经常存在(或者至少是不准确的)。我们已经看到了一些示例,其中操作系统认为总RAM为16GB,所有进程的驻留内存(RSS)的总和为4GB RAM,但是只有2GB可用RAM,即使VMware工具告诉我们0迅速增加: -( 同样,仅将RSS加在一起也是无效的,因为可以很容易地共享RAM,例如写时复制内存,所以512MB + 512MB不一定意味着1GB,但是可能意味着更少。因此,不能简单地从所有进程中减去RSS来衡量应该释放多少RAM,从而可靠地检测出膨胀。一个人可以检测到气球膨胀的某些情况,但是在其他情况下,气球膨胀是有效的,但这种方法无法检测到。 磁盘I / O 我想我们可以随时间绘制磁盘读取和写入的数量,读取和写入的字节数量以及IO等待百分比的图形。但这是否可以为我们提供磁盘I / O的准确情况?我想如果在使用所有CPU的另一台VM上运行一个比特币挖矿机,即使底层SAN提供了完全相同的性能,我们的IO等待%也会增加,这仅仅是因为我们的CPU资源下降,因此IO等待(以%表示)。 因此,总而言之,我们可以使用哪种语言来描述例如VMware管理员,以可移植且可衡量的方式来描述我们所需的性能?

2
高磁盘I / O-jbd2 / sda2-8进程
我已经在CentOS 5.8最终服务器上运行了文件服务器。 目前,我唯一担心的是由于jbd2 / sda2-8进程而断断续续但连续的高磁盘I / O活动导致总体速度下降。 jbd2 / sda2-8正在使用/ dev / sda2,它是第一个硬盘驱动器的第二个分区(IE:根分区)。 更多信息:使用“ iotop”,罪魁祸首似乎是“ jbd2 / sda1-8”每秒写入一次,如果我的谷歌搜索正确的话,这似乎是与ext4文件系统上的日记关联的内核进程。 我看到“ jbd2 / sda2-8”不时出现在这里,但肯定不是每3秒出现一次。空闲时,每分钟出现1到2次。当我使用系统时,它会更频繁地出现。 ATOP结果:http : //grabilla.com/02b14-8022db2e-4eb9-4f10-8e10-d65c49ad7530.png 物联网结果:http ://grabilla.com/02b14-cf74b25d-4063-4447-9210-7d1b9b70e25b.png HTOP结果:http ://grabilla.com/02b14-ad8cad0e-89b0-46d3-849d-4fd515c1e690.png jbd2 / sda2-8是我用iotop看到的在磁盘上进行写操作的过程,即使它根本没有使用。 有人知道如何解决jbd2 / sda2-8进程导致的磁盘使用率过高吗?

2
CPU时间和CPU使用率如何相同?
在Wikipedia页面上的CPU时间,它说 CPU时间以时钟滴答或秒为单位。通常,以CPU容量的百分比来衡量CPU时间是很有用的,这称为CPU使用率。 我不明白如何用百分比代替持续时间。当我看时top,难道不%CPU告诉我我MATLAB使用的是2.17内核吗? PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 18118 jasl 20 0 9248400 261528 78676 S 217.2 0.1 8:14.75 MATLAB 题 为了更好地了解什么是CPU使用率,我如何自己计算CPU使用率?

4
ramfs和tmpfs之间的性能差异
我需要为大约10 GB的数据设置一个内存中存储系统,其中包含许多100 kb的单个文件(图像)。会有很多读取和相当定期的写入(添加新文件,删除一些旧文件)。 现在,我知道tmpfs的行为类似于常规文件系统,例如,您可以使用df检查可用空间,这是一个不错的功能。但是,我对ramfs是否会在IO操作速度方面提供一些优势感兴趣。我知道使用ramfs时无法控制消耗的内存大小,并且如果系统完全消耗了可用的RAM,则我的系统可以挂起,但是在这种情况下这不是问题。 总而言之,我感兴趣: -性能方面,速度更快:ramfs或tmpfs(可能是为什么)?-tmpfs 何时使用交换空间?它会把已经保存的数据移到交换区(为正在运行的其他程序释放RAM)还是只有新数据(如果那时没有剩余的RAM)?

4
是否存在Unix / Linux命令来计算stdin每秒的行数?
我正在尝试计算日志文件中每秒SQL查询的数量,我想通过将grep中的stdout通过管道传递到某些命令中来实时执行。(我正在做一些性能测试) 我可以自己写,但可以肯定会存在。 我看了看wc,但没有选择允许这样做的选项。 我还可以使用它通过访问日志中的尾巴来计数每秒的请求数。

8
我应该完全关闭Linux Web服务器的交换吗?
最近,我的朋友告诉我,关闭具有足够内存的linux Web服务器上的交换是个好主意。我的服务器有12 GB,当前在峰值负载下使用4GB(不计算缓存和缓冲区)。 他的观点是,在正常情况下,服务器将永远不会使用其所有RAM,因此,它可能遇到OutOfMemory情况的唯一方法是由于某些bug / ddos​​ / etc。因此,如果关闭交换,系统将耗尽内存,最终将使程序占用内存(很可能是Web服务器进程)以及其他一些进程崩溃。在交换的情况下打开的它会同时吞噬RAM和交换空间,最终将导致相同的崩溃,但是在此之前,它将卸载sshd之类的关键进程进行交换,并开始执行大量交换操作,从而导致严重的速度下降。这种方式在ddos系统下可能会由于巨大的延迟而进入完全无法使用的状态,并且我可能将无法登录并杀死Web服务器进程或拒绝所有传入流量(除ssh之外的所有流量)。 这是正确的吗?我是否缺少某些东西(例如即使我有足够的RAM,交换分区在某种程度上还是很有用的事实)?我应该关闭它吗?

8
分析Linux NFS服务器性能
我想对我们的NFS服务器进行一些分析,以帮助追踪应用程序中的潜在瓶颈。服务器正在运行SUSE Enterprise Linux 10。 我想知道的是: 哪些客户端正在访问哪些文件 基于每个客户端的读/写吞吐量 其他RPC调用造成的开销 等待其他NFS请求或磁盘I / O服务客户端所花费的时间 我已经知道其中提供的统计信息,/proc/net/rpc/nfsd实际上我写了一篇博客文章来详细介绍它们。我正在寻找的是一种方法,可以进行更深入的研究,并帮助您了解哪些因素对特定客户所看到的性能有所贡献。我想分析NFS服务器在集群上应用程序的性能中扮演的角色,以便我想出最佳方法来对其进行优化。
22 linux  performance  nfs 

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.