Jump to content


Диагностика лагов клиента Second Life

лаги

  • Please log in to reply
2 replies to this topic

#1 alina

alina

    Новичок на форуме

  • Пользователи
  • PipPip
  • 39 posts
  • Основной цех:Скриптеры
  • SL Status: 

Posted 29.11.11 - 15:57

Second Life это вам не бентли, этот мир больше похоже на помесь трактора и осциллографа, увы. Да, конечно, вы не обязаны знать как устроен этот трактор (слава богу!), но за непонимание того, что показывают мечущиеся стрелки его осцилографа, вы заплатите своими нервами вместо получения удовольствия развлечения изучения и всего прочего что вы ищите в СЛ.

А для того, чтобы сберечь свои нервы, нужно в минимуме выучить всего-то пару строк непонятного текста

Я постараюсь свести в несколько инструкций способы, места и подходы к диагностике ошибочных состояний в СЛ, принятия оптимальных решений по их компенсации и устранению. Естественно принимается дисскусия по эффективности этих способов и альтернативные рекомендации.

Инструкции будут следовать серией по нарастающей сложности. Предполагается, что первая обязательна к запоминанию абсолютно всеми и полностью доступна для исполнения ими же без каких либо трудностей.

Технические знания не предполагаются как минимум в наиболее простых инструкциях, но вам может потребоваться некоторое время, чтобы адаптироваться к непривычным видам подачи информации. Не пугайтесь, через непродолжительное время ваш мозг сам привыкнет и вместо прыгающих циферок вы научитесь видеть полезную информацию. Заменить встроенные диагностические инструмены клиента на чтото более простое на данный момент не представляется возможным к сожалению.

Итак, приступим... ))

Предполагается, что будет начальная статья для всех, в которой я опишу минимально необходимые знания по экспресс-диагностике состояния СЛ и оптимальному поведению в этих ситуациях, минимизирующие ваши затраты времени и нервов в случае появления лагов. В трех главах - введение понятий, показания трех наиболе важных индикаторов и рекомендуемые реккции на них. Хочется верить что это будет понятно и полезно всем без исключения )

Потом будут отдельные статьи по более тонкой и продвинутой диагностике каждой составляющей лага с соответвующеми им рекомендациями по оптимизации клиента, операционного окружения клиента, действиями эстейт-менеджера сима и элементарной инженерной сетевой диангостики каналов и типовых проблем интернета. Как-бы факультативно, для желающих углубляться. )

Edited by SOb Zemlja, 09.01.12 - 12:37.


#2 alina

alina

    Новичок на форуме

  • Пользователи
  • PipPip
  • 39 posts
  • Основной цех:Скриптеры
  • SL Status: 

Posted 29.11.11 - 16:23

=== 1.0 элементарная диагностика лага, комбинацией из трех цифр. вступление ===




для начала нужно запомнить следующее. СЛ это не одна программа на вашем компьютере, это по меньшей мере ТРИ разные обьекта, каждый из которых может не работать отдельно от остальных и по совершенно своим причинам. определить место лага чуть более чем строго необходимо, так как средства устранения полностью различны. для вас СЛ представлена в виде

- сервера (работающего ГДЕ-ТО ТАМ в этих ихних интернетах, на какомто далеком компьютере с его далекими и непонятными проблемами). вы видите этот сервер как СИМ (симулятор), прграмму которая имитирует для вас все события этого второго мира(не рисует его а только события, это важно запомнить). вы видите его как ОДИН компьютер имеющий некий IP-адрес и маршрут к нему. хотя на самом деле за этим ОДНИМ компьютером сима скрывается их целая куча, вы эту кучу не видите, так как взаимодействуете со всей их совокупностью только через сервер вашего сима.

- клиента (работающего строго и полностью на вашем компьютрере) который получает от сервера (а точнее через него от кучи невидимых вам серверов) всю информацию о втором мире, его предметах и который (ваш клиент) рисует вам всю эту картину во всей ее красоте. то есть клиент выполняет рендеринг - рисование полученного от сервера 3Д-мира с зданной вами позиции наблюдателя (места расположения аватара либо произвольного пложения камеры, если вы этого захотели)

- канала связи между ними. без наличия которого сервер не сможет узнать о ваших аватарских действиях а клиент не сможет узнать о ихних серверных новостях. то есть без которого абсолютно ничего работать не будет ))

а новостей у нас обычно много. главное в чем измеряются новости в СЛ это FPS (frame per second, кадры в секунду). все происходящее в сл происходит не непрерывно а как последовательность шагов, последовательно обсчитуемые статичные состояния сима. то есть каждый следующий кадр симулятор вычисляет ваше положение на основании собыий и вашего положения в прошлом кадре. то же происходит абсолютно со всеми обьектами - начиная от ваших волос и заканчивая всеми летящими вокруг пулями.

кадров обычно 45 штук в секунду. что создает иллюзию непрерывности так как глаз человека воспринимает как непрерывное все что движится быстрее чем 25 кадров в секунду. но на пересчет всего этого 15 тысячного мусорного хозяйства может не хватить и самой большой вычислительной мощности. и тогда вы неожиданно перестаете двигаться (так как на вас просто не нашлось времени сервера на пересчет) у вас ничего не видно на экране (просто потому что не нашлось времени на отображение) либо вы вообще вылетаете из СЛ (так как клиент обиделся на плное отсутствие информации от сервера в течении 10-20 секунд). это значит что на сцену вышел его величество ЛАГ, во всей его красе )

а краса его представлена тремя главными цифрами, посмотреть которые можно в диагностическом окне, открывающимся по команде CTRL-SHIFT-1
- FPS ( количество кадров обсчитанное вашим персональнм клиентом, для вас лично)
- PING SIM ( доступность канала связи с сервером, преймущественно для вас лично, хотя бывают варианты)
- SIM FPS ( количество кадров обсчитанное вашим симулятором, для всех присутствующих на симе одновременно)

о значении этих цифр и рекомендуемых способах их нормализации - в след посте чуть позже. хачу кушать ) а вы пока что найдите у себя в клиенте это диагностическое окно и указанные цифорки в нем

Edited by alina, 29.11.11 - 19:12.


#3 alina

alina

    Новичок на форуме

  • Пользователи
  • PipPip
  • 39 posts
  • Основной цех:Скриптеры
  • SL Status: 

Posted 29.11.11 - 19:45

=== 1.1 элементарная диагностика лага, комбинацией из трех цифр. метания стрелки осцилографа ===


теперь рассмотрим знаение этих интикаторов лага детально и по отдельности

- SIM FPS - этот индикатор указывает нам на количество фреймов которые серверу удалось обсчитать в ближайшую секунду. сервер на каждом кадре делает некий свой стандартный список работы, на каждую ее часть он тратит некоторое время, в сумме он должен уложится в 25 миллисекунд для всего списка (детальнее это будет рассмтрено в более сложных статьях цикла). если сервер укладывется менее чем в 25 миллисекунд то остальное время кадра - он отдыхает. а за всю целую секунду он успевает 45 раз заново обсчитать кадры симулятора. это значит что все сместится на чуть-чуть 45 раз. это и есть 45 FPS общитаных кадров в секунду

но не всегда серверу удается уложится в отпущенные 25 милисекунд для кадра. и тогда эти 45 кадров не помещаются в эту самую одну секунду. и SIM FPS падает. обычно его нормлаьное значение 44-45 FPS. если он 40-44 FPS то сервер сильно нагружен и это уже тревожно. в частности иногда на вас у сервера просто не хватит времени и вы (и все) будете слегка подтормаживать. если SIM FPS падает менее 40 это уже драма - это будет более чем заметно. а иногда бывает что SIM FPS падает и менее 1 - это уже трагедия и ППЦ. реально в таком состоянии вы фактически ничего уже не можете кроме как готовится вылететь из СЛ в самое ближайшее время )

- FPS - этот индикатор показывает нам сколько раз вашему персональному клиенту удалось заново пересчитать (отрендерить) отображаемую вам картинку. сервер обычно передает клиенту толко описание где и как стоят предметы, а клиент сам уже трасирует лучи света и рисует на экране какбы это выглядело. естественно все волски меховой шубки рисуются отдельно. и когда они слегка дрожат в легком морозном воздухе холодной снежной вершины ваш процессор просто дымится от напряжения пересчитывая все эти малейшие колебания, даже если вы их и не замечаете. если жы вы еще и несетесь на лыжах с неймоверной скоростью то процессор уже не знает что вам обсчитваать - дрожание волосков или несущийся мимо горный пейзаж. и на положеные 45 (или хотябы 25) FPS (нарисованных кадров в секунду) его не хватает. непрерывная картинка начинает рватся, клиент начинает пропускать ваши команды, чат перестает вводить буковки и тд

вцелом считается что FPS клиента не должен падать менее 12 FPS (кажется). но если вы тупо стоите на пустой скай платформе и вокруг царит полная неподвижность то как минимум феникс справедлово не утруждает себя перерисовыать ее чаще чем 10 FPS. но если вы двигаетесь активно в динамичном оркужении и FPS не может подняться выше 20 - у вас формально личные проблемы с быстродействием вашего клиента на вашем компьютере. на самом деле это самый не важный параметр быстродействия. но когда FPS клинета падает менее 1 (менее одного даже кадра за секунду) то как минимум движение становится слишком утомительным. трудно ориентироваться когда не знаешь ге ты сейчас и куда приведет тебя следующий шаг

реально я 24 FPS клиента у себя никогда не наблюдала. хотя формально это требуемая цифра для комфортного отображения сима

- SIM PING - этот индикатор показывает способность вашего клиента общаться с вашим сервером и я опишу его чуть позже

в следующей (и завершающей) части этой статьи я опишу рекомендуемые действия в случае тревожных показателей одного из трех указаных индикаторов лага. предпогается что это оптимальное поведение минимизирующие ваши затраты времени и нервов в случае появления лагов

потом будут отдельные стати по более тонкой и продвинутой диагностике каждой составляющей лага. с соответвующеми им рекомендациями по оптимизации клиента, операционного окружения его, действиями эстейт менеджера сима и элементарной сетевой диангостики каналов и проблем интернета

Edited by alina, 29.11.11 - 20:36.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users