当使用协同作用时,有时会滞后


9

更新:他们修复了Synergy 1.9.0上的macOS wifi滞后!https://symless.com/forums/topic/2587-download-synergy-190-to-fix-the-wifi-macos-bug/

我用synergy。我的linux桌面充当服务器,而我的macbook作为客户端连接。使用协同作用时,它们都通过有线连接连接到linksys WRT-45GL路由器。

有时,当我第一次将鼠标悬停在我的Macbook上时,连接将会滞后。例如,我将移动鼠标,但光标将不会移动2或3秒钟。否则,我将输入一些内容,它不会显示一段时间。它偶尔发生。通常仅在切换到Mac的第一分钟左右,但不一定。

我该怎么做才能解决此问题?

我尝试检查两台计算机上的CPU使用率,但没有发现与时滞相匹配的峰值。我认为瓶颈在于网络流量,但是我不知道如何确认或解决该问题。


2
您是否尝试过反转计算机的角色以查看其是否能够复制行为?然后,您至少要排除一些选择。

我没有,尽管那不是一种选择:使用mac作为客户端会使密钥在桌面(这是我的主计算机)上变得很棘手,但是,如果有机会,我会尝试一下……
David Oneill

您解决了吗?可接受的答案仅仅是故障排除技巧。您的原因/解决方案是什么?
艾伯特·博里

@AlbertBori哇-这是4年前的事了。对于我来说,这还没有发生,但是从那时起,我安装了新的操作系统,并且安装了另一台台式机……我不记得问题最终出在哪里。抱歉
David Oneill 2014年

1
大卫,别担心。这是我发现的唯一一篇讨论我所遇到的问题的帖子。事实证明,某种形式的重新启动所涉及的服务/计算机通常可以解决问题。
艾伯特·博里

Answers:


3

好吧,您知道如果仅连接了两个设备,它就不能成为第2层(无法填充mac表)。如果您具有静态主机映射,则不能是第三层。剩下带宽,冲突和软件。Wireshark可以告诉您有关带宽的信息,有时还可以指示冲突。我将在中间放置一些便宜的硬件,其中记录了可用于检查冲突的冲突。然后您就可以申请了。


1
此问题已解决!我们修复了Synergy 1.9.0上的macOS wifi滞后问题!symless.com/forums/topic/…–
尼克·博尔顿

@NickBolton对于许多用户而言,它不是固定的,请参见symless.com/forums/topic/…另外,对于我和其他人,1.9.0崩溃时会崩溃。
PabloC

3

我刚才有同样的问题,我尝试了所有其他修复(我的mac机不是以太网)。

在主机PC(Windows)中,去任务管理器(按Ctrl + Shift + Esc键),然后点击顶部的细节选项卡,然后搜索synergy.exesynergyd.exesynergys.exe然后右键单击它们,并根据设定的优先级子菜单中选择High


不起作用:(还有其他想法吗?
DrCord

3

背景和解决方案概述

这有点长,但是重点是要通过“详细说明”部分进行教育。如果您已经受过教育,请阅读本节以及结论;-)

自1990年代以来,我一直在以各种形式在Linux和Windows上使用Synergy,这个问题经常弹出。有两个常见原因,在这里我只讨论第一个。

通常这是操作系统级别的问题,它是客户端的调度程序优先级,因此解决方案只是增加客户端的优先级。这将改善问题,但总体经验仍将基于调度程序的观点,即更新屏幕的重要性等。最后请参见。

有时还有另一个原因:服务器或客户端进程中的一个或两个都死掉并重新启动,在这种情况下,您应在Synergy服务器和客户端上启用调试级别日志记录,然后从那里进行调试。解决该问题后,请执行上述操作。

详细说明

增加Windows客户端调度程序的优先级

使用Windows 7,我不知道较新版本中的快捷方式。

  1. 打开任务管理器(Ctrl-Alt-Esc)并单击“进程”选项卡。

  2. 右键单击synergy.exe,单击“设置优先级”,然后选择“高”或“实时”。

  3. 重复synergyc.exe。

  4. 如果Synergy服务器太慢,则其过程为synergys.exe。

增加Linux客户端调度程序的优先级

在Mac上也可以使用类似的工具。您可能知道如何在GUI中执行此操作,但是我使用命令行。除非您以root(sudo su -)身份执行以下操作,否则您将不得不(以root身份)玩转visudo并设置相关的使用权renice

ps -eo pid,ni,cmd |\
grep synergy |\
grep -v grep |\
cut -d" " -f2 |\
while read pid; do echo -n $pid" "; done |\
xargs renice -19

您可以复制并粘贴以上内容,也可以通过删除所有\和换行符将其放在一行上。如果要查看将要执行的实际操作,请将最后一个命令更改为xargs echo renice -19

如上所述,这仍然是调度程序关于许多其他进程的重要性的观点的要求。如果您想学一点,可以执行以下操作。

查看Windows进程

打开任务管理器。在“进程”选项卡中,单击“显示所有用户的进程”按钮。然后单击“查看”菜单,然后单击“选择列...”。确保仅勾选以下各项:用户名,CPU使用率,CPU时间,基本优先级,命令行。如果需要,也可以单击“描述”。

您可以拖动窗口以及较大的列以方便阅读。单击列标题以对其进行排序。您也可以右键单击图像名称,例如,转到关联的服务。这对于诸如svchost.exe这样的乏味图像名称很有用。如果您想使用一个非常强大的工具(请小心!),请尝试使用ProcessHacker

查看Linux进程

运行ps -eo pid,ni,cmd | less以查看所有正在运行的进程。每行表示一个进程状态,各列是:进程ID,其优先级和相关的命令行。需要注意的是,在Unix中,nice值越低,优先级越高。

结论

事实是,Synergy依赖于很多其他进程来完成其部分工作(例如,处理Pro中的SSL),并且每个进程都具有OS调度程序为其分配的优先级。因此,确实没有简单的解决方案。

即使应用了上面提到的“修复”,进入客户屏幕已经有一段时间了之后,事情通常还是很慢,这是由于整个过程系列都放在了调度程序的后台,所以说话。如今,大多数调度程序都是自适应的,并降低了闲置了一段时间的用户进程的优先级。为了使调度程序再次将其视为重要,需要持续使用一段时间,例如,进入屏幕后将鼠标移至很多位置。这很痛苦,但这就是OS调度程序在非实时操作系统中的工作方式。

有多种方法可以进行调整,但这是针对每个OS(甚至是不同的发行版)的,并且非常脆弱(阅读:在OS修补程序上容易中断)。如果不看代码,我希望Nick&team只能通过将Synergy降至内核驱动程序级别来真正解决此问题,这将使其变得更加脆弱,并导致价格大幅上涨。

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.