Предпосылки и план решения
Это немного долго, но смысл в том, чтобы обучаться через раздел «Подробные инструкции». Если вы уже образованы, просто прочитайте этот раздел и, возможно, заключение ;-)
Я использую Synergy для Linux и Windows в различных формах с 1990-х годов, и этот вопрос часто возникает. Есть две общие причины, и я имею дело только с первой.
Как правило, это проблема уровня ОС, являющаяся приоритетом планировщика клиента, поэтому решение состоит в том, чтобы просто повысить приоритет клиента. Это улучшит ситуацию, но общий опыт будет по-прежнему основываться на представлениях планировщика о том, насколько важно обновить экран и т.д. Более подробную информацию см. В конце.
Иногда есть другая причина: один или оба серверных или клиентских процесса умирают и перезапускаются, и в этом случае вы должны включить ведение журнала уровня отладки на сервере и клиенте Synergy и забрать его оттуда. После того, как вы решите это, реализуйте вышеизложенное.
Подробные инструкции
Увеличение приоритета планировщика клиента Windows
Используя Windows 7, я не знаю ярлыков в более новых версиях.
Откройте диспетчер задач (Ctrl-Alt-Esc) и щелкните вкладку "Процессы".
Щелкните правой кнопкой мыши файл synergy.exe, выберите "Установить приоритет" и выберите "Высокий" или "В реальном времени".
Повторите для synergyc.exe.
Если сервер Synergy работает слишком медленно, его процесс - synergys.exe.
Увеличение приоритета планировщика клиента Linux
Нечто подобное должно работать на Mac. Вы можете знать, как это сделать в графическом интерфейсе, но я использую командную строку. Если вы не выполните следующие действия в качестве пользователя 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
Откройте диспетчер задач. На вкладке "Процессы" нажмите кнопку "Показать процессы всех пользователей". Затем нажмите в меню "Вид" и выберите «Выбрать столбцы ...». Убедитесь, что отмечены только следующие параметры: имя пользователя, загрузка ЦП, время ЦП, базовый приоритет, командная строка. Вы также можете нажать на Описание, если хотите.
Вы можете перетащить окно, а также столбцы больше, чтобы облегчить чтение. Нажмите на заголовок столбца, чтобы отсортировать его. Вы также можете щелкнуть правой кнопкой мыши на имени изображения и, например, перейти к связанным службам. Это полезно для таких простых имен изображений, как svchost.exe. Если вам нужен действительно мощный инструмент для игры (будьте осторожны!), Попробуйте ProcessHacker.
Видя процессы Linux
Выполнить ps -eo pid,ni,cmd | less
чтобы увидеть все запущенные процессы. Каждая строка представляет состояние процесса, а столбцы: идентификатор процесса, его приоритет и рассматриваемая командная строка. Суть в том, что в Unix чем ниже значение nice, тем выше приоритет.
Заключение
Дело в том, что Synergy зависит от множества других процессов, выполняющих часть своей работы (например, работа с SSL в Pro), и каждый из этих процессов имеет приоритет, назначенный ему планировщиком ОС. Таким образом, на самом деле не существует простого решения.
Даже после применения "исправления", о котором говорилось выше, после входа на экран клиента, на котором вы давно не работали, дела идут медленно, и это происходит из-за того, что все это семейство процессов перенесено на задний план планировщика, так что говорить. В наши дни большинство планировщиков являются адаптивными и уменьшают приоритет пользовательских процессов, которые некоторое время простаивали. Чтобы планировщик снова увидел их важными, необходимо некоторое время продолжать их использование, например, много раз перемещать мышь после выхода на экран. Это боль, но именно так работают планировщики ОС в операционных системах не реального времени.
Есть способы настроить это, но это очень специфично для каждой ОС (даже разных выпусков) и хрупко (читай: легко ломается при исправлениях ОС). Не глядя на код, я ожидаю, что Nick & team действительно решит эту проблему, только опустив Synergy до уровня драйвера ядра, что сделает его более хрупким и приведет к значительному скачку цен.