Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Очень большая нагрузка на процессор
#21
а вот такое железо какой онлайн потянет: процессор AMD Athlon™ X2 Dual Core Processor 4600+ 2.40 GHz оперативы:2гб интернет:тариф 24 мб
Ответ
#22
black-soul;103447 Написал:интернет:тариф 24 мб
интернет от VEGA?
Ответ
#23
120% нагрузки - это нормальная ситуация в nix-системах... 100% - это полная загруженность одного ядра.
А по поводу "большая нагрузка" скорее всего это из-за холостых бесконечных циклов (как-раз один такой слопает одно ядро и будет 100% + 20% от остального). И уменьшение нагрузки при увеличении онлайна тоже вполне объяснимо - меньше времени ядро начинает проводить в пустом бесконечном цикле.
Пример псевдохолостого цикла (безотносительно какой-либо сборки, из головы написал, чтоб объяснить проблему):
Код:
while (true) {
    if (GameServer.getPlayers().size() > 0) {
        // что-нить делаем с плеерами
    }
}
Если плееров нету, то получаем холостой цикл (читай - 100% на одно ядро).
Можно поискать по коду (ядро/скрипты/etc) такие или похожие конструкции, и искоренить их.
Код:
while (true) {
    GameServer.playerMonitor.wait();
    if (GameServer.getPlayers().size() > 0) {
        // что-нить делаем с плеерами
    }
}
// и в методы добавления-удаления плееров после,
// собственно, операции над плеером воткнуть
GameServer.playerMonitor.notify();
это так, самый простой фикс. Получим "залипание" псевдобесконечного цикла на wait()-е до первого вызова notify() у объекта-монитора, т.е. вместо 100% на одном ядре - "засыпание" нитки с этим циклом до реального изменения данных.

ЗЫ: не знаю, как в aion-е, а в mmocore из la2 такое место точно есть на дочитке пакетов, а также несколько раз натыкался на всяких "сторонних" примочках, типа выдавателей бонусов за голоса, встроенных в сервер, и т.д.

ЗЗЫ: а еще полездно иногда перед тем, как что-то писать многониточное высоконагруженное приложение, сначала почитать про синхронизацию данных и ниток хотя бы в инете и вообще про проблемы, связанные с такого рода задачами. Полезно бывает Smile
Ответ
#24
sotariz Написал:интернет от VEGA?
Да интернет от Vega а что?(если плохо то посоветуйте другое,просто пока нету шансов провести кабель,а только через домашний или спутник)
Blakkky Написал:120% нагрузки - это нормальная ситуация в nix-системах... 100% - это полная загруженность одного ядра.
А по поводу "большая нагрузка" скорее всего это из-за холостых бесконечных циклов (как-раз один такой слопает одно ядро и будет 100% + 20% от остального). И уменьшение нагрузки при увеличении онлайна тоже вполне объяснимо - меньше времени ядро начинает проводить в пустом бесконечном цикле.
Пример псевдохолостого цикла (безотносительно какой-либо сборки, из головы написал, чтоб объяснить проблему):
Код:
while (true) {
    if (GameServer.getPlayers().size() > 0) {
        // что-нить делаем с плеерами
    }
}
Если плееров нету, то получаем холостой цикл (читай - 100% на одно ядро).
Можно поискать по коду (ядро/скрипты/etc) такие или похожие конструкции, и искоренить их.
Код:
while (true) {
    GameServer.playerMonitor.wait();
    if (GameServer.getPlayers().size() > 0) {
        // что-нить делаем с плеерами
    }
}
// и в методы добавления-удаления плееров после,
// собственно, операции над плеером воткнуть
GameServer.playerMonitor.notify();
это так, самый простой фикс. Получим "залипание" псевдобесконечного цикла на wait()-е до первого вызова notify() у объекта-монитора, т.е. вместо 100% на одном ядре - "засыпание" нитки с этим циклом до реального изменения данных.

ЗЫ: не знаю, как в aion-е, а в mmocore из la2 такое место точно есть на дочитке пакетов, а также несколько раз натыкался на всяких "сторонних" примочках, типа выдавателей бонусов за голоса, встроенных в сервер, и т.д.

ЗЗЫ: а еще полездно иногда перед тем, как что-то писать многониточное высоконагруженное приложение, сначала почитать про синхронизацию данных и ниток хотя бы в инете и вообще про проблемы, связанные с такого рода задачами. Полезно бывает Smile
ну железо 2 ядра я несовсем понял что тут написано ну как я понял при 100% нагрузке ето нагружен только 1 процесор из 2?и что в компе надо почистить чтото(что непонял)
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)