|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
День добрый. Есть хитрое 3-х уровневое приложение, написанное на VFP9 (!) База - Oracle, миддлтайер и клиент - на Фоксе. Чужое. Архитектура такая: на каждого клиента на сервере поднимается фоксовое приложение и живет. Проблема в том, что практически при любом клиентском чихе этот серверный процесс съедает 100% CPU. Oracle практически ничего не делает, сеть тоже свободна, дисковой активности нет, памяти валом. По самой задаче с данными тоже особо делать нечего - объемы небольшие. Но когда 5 пользователей одновременно жмут кнопку, ответа они уже не дожидаются. Идея ограничить использование процессора на уровне ОС остается на крайний случай. Вопрос, можно ли выяснить, чем фокс занимается в это время? Вариант ограничить CPU usage через, скажем, config.fpw тоже интерестен, как и опыт использования фокса в таком (ну, не точно таком, а, например, терминальном) виде. Программа уже куплена, авторы предлагают приобрести датацентр, дабы 40 человек (!) смогли работать :), нам такое не подходит. Может, кто-то встречался с таким? Сервер Windows 2003 Server sp2 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 18:41 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Сэмка, refox в помощь :) PS. афтары мониаки, сваяли на фоксе аналог одногоце ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 18:59 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
refox не катит, спецов нет. Я больше 10 лет тому хоть vfp3.0 пощупал, а так пара чел-к еще раньше на 2.6 остановилась. И прога монстровая, я так понимаю, раз они пожадничали на чем-то поадекватней переписать и предпочли такого уродца изготовить. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 19:12 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Сэмка, Мне встречаться с этим не приходилось. Может чего-то я и не понимаю, но есть мысли по поводу. Пусть авторы, если умные такие, разгребают проблему перегрузки процессора, и все прочие проблемы, чтобы нормально работало нужное ВАМ число юзеров. Теперь еще непонятки, для меня, во всяком случае: Сэмка Архитектура такая: на каждого клиента на сервере поднимается фоксовое приложение и живет. Это как, на 40 клиентов 40 серверных приложений? Тогда это туфта.. Или все же на каждого клиента одно серверное приложение? Тогда есть предположение, что программа вообще одноуровневая, без "клиента". Это, может, и неплохо, но переплачивать бабки за "клиента" не нужно. Да и нагрузка на сервер резко повышается, не в этом ли причина перегруза? Наконец, если данных немного, юзеров тоже, то зачем Оракл? И зачем клиент-сервер?? Все можно элементарно сделать на Фоксе при желании, и даже серверную часть. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 19:37 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Нет, именно 40 юзеров - 40 процессов. И 1 процесс-диспетчер. Оракл нужен для вынесения обработки сравнительно больших (и растущих!) объемов данных из приложения. Т.е. обычный файлсервер разнесли по уровням. К базе нет претензий - запросы нормальные, работают быстро, мы в этом-то как раз нормально разбираемся. Разработчики видят 1 решение: качать железо. И нашли в контракте какой-то пункт, который наши манагеры проморгали. Понятно, когда продавали, о фоксе никто и не заикался - по документам это 3-х уровневое приложение с оракловым бэком, программерам его на всякий случай не показывали :) Теперь или мы за них должны найти решение (уверен, что оно существует, живут же многопользовательские фоксовые системы и не жужжат!), или нужно потратить эндесят килобаксов на новое железо. Смешно, конечно, но не нам. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 19:49 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Сэмка, Опишите свое железо ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 20:06 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Да ладно, в принципе какая разница на чем написано? Тут же затык не в производительности интерпретатора. Может, в цикле делается попытка эксклюзивно что-то занятое открыть или еще что-то. А эффект - 100% утилизация. Попробую на системном уровне поиграться, типа processmon-ом ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 20:40 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
igorbik, Железо не ахти, 2.4 CQ, 4G RAM, Но еще раз: 4 процесса забирают 4 ядра на 100%, при этом гиг памяти свободен, сеть занята в пике на 2%, дисковая активность отсутствует. Понятно, что если сейчас 15 человек затыкаются, то, добавив еще 3 таких проца, мы, вероятно, разрулим и 50. Вернее, они так же станут в очередь, но позже :) Смысл? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 20:47 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Сэмка, Похоже, не в железе дело. Не факт, что наращивание мозгов разрулит загрузку. Возможно, что железо уже подпортилось. Возможно, в клиенте имеются зацикленные процессы, ждущие выхода по значению переменной, либо неоптимизированные с точки зрения Фокса запросы, фильтры иле еще что такое, что жрет ресурсы. Конечно, поставить бы эту программу на отладку и проследить за нагрузкой... Однако с точки зрения юзера, незнакомого с программированием и железом, можно было бы где-то взять (типа напрокат на 1 неделю) железо с мозгами, соотв. требованиям контракта, и проверить, что будет. Дальше уже будет думаться легче. Интересно, где это все происходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 21:26 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Сэмкаrefox не катит, спецов нет. Я больше 10 лет тому хоть vfp3.0 пощупал, а так пара чел-к еще раньше на 2.6 остановилась. И прога монстровая, я так понимаю, раз они пожадничали на чем-то поадекватней переписать и предпочли такого уродца изготовить.А со стороны кого-нить пригласить? Может даже удаленно? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 21:35 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Фоксовский процесс в режиме ожидания CPU практически не потребляет, может у них там бесконечные циклы какие-то крутятся? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 10:26 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
... которые отключатся после приобретения датацентра :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 10:29 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
100% - крутят тупые циклы! Таких "разработчиков", да еще и с идеей датацентра... Ну и кто покупал - куда смотрел?! - Это у вас кто висит? - Выродки! - А за что вы их вешаете? - За шею, конечно! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 12:01 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
В режиме ожидания все нормально, речь идет о выполнении каких-то действий Кто виноват - сейчас не рассматривается, интересно, что делать. Железо не битое Датацентр продают не они, так что это головотяпство, а не злой умысел. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 13:35 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Да, со стороны никого не пригласишь, там уже реальные данные и люди работают. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 13:45 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
СэмкаДа, со стороны никого не пригласишь, там уже реальные данные и люди работают.Ну, для декомпиляции то никаких данных не нужно. Получите исходники, а дальше уже будет над чем думать. Для отладки не нужны все данные, к тому же реальные, достаточно нескольких записей "похожих" на настоящие. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 13:56 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Несколько записей в КАЖДОЙ из 300 таблиц с констрейнтами - нереально. Я уже молчу об авторских правах. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2009, 14:17 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
OK, задача слегка изменилась. Во-первых, оказалось, что это не чистый фокс, а сишная прога, которая вызывает фоксовую dll. Хрен редьки не слаще. Оказалось, что фокс создает файл подкачки, хотя памяти валом и внем что-то молотит. Можно ли его заставить пользоваться памятью или это вне контроля? Тут история обратная классической: память есть :) Я еще не обнаружил обращений к config.fpw, что, dll-ка пользуется чем-то другим? Можно ли на нее как-то воздействовать, дабы иметь возможность менять параметры по-умолчанию? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 13:00 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
СэмкаОказалось, что фокс создает файл подкачки,На каком основании сделан такой вывод? хотя памяти валомИ что из этого следует? Фокс обязан все деалть в памяти? Опять же, на каком основании? и внем что-то молотит. Можно ли его заставить пользоваться памятью или это вне контроля?А нужно ли? Тут история обратная классической: память есть :) Я еще не обнаружил обращений к config.fpw, что, dll-ка пользуется чем-то другим?Он может быть внутри. Можно ли на нее как-то воздействовать, дабы иметь возможность менять параметры по-умолчанию?Декомпиляция. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 13:07 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
проходящий.На каком основании сделан такой вывод?[/quot ] procmon [quot проходящий.]И что из этого следует? Фокс обязан все деалть в памяти? Опять же, на каком основании?[/quot ] Фокс никому ничем не обязан, я задал вопрос, как его попросить. Операции в памяти несколько быстрее, знаете... [quot проходящий.]Он может быть внутри. [/quot ] Он - это кто? [quot проходящий.]Декомпиляция. Невозможно, код собирается динамически ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 13:16 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Сорри, не разобрался с тегами Повторю читабельней проходящий.На каком основании сделан такой вывод? procmon проходящий.И что из этого следует? Фокс обязан все деалть в памяти? Опять же, на каком основании? Фокс никому ничем не обязан, я задал вопрос, как его попросить. Операции в памяти несколько быстрее, знаете... проходящий.Он может быть внутри. Он - это кто, файл? Внутри чего, сишного модуля? проходящий.Декомпиляция. Невозможно, код собирается динамически ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 13:24 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
СэмкаprocmonВременные файлы и файл подкачки - две большие разницы. Фокс создает первое. И без них он работать не может. Фокс никому ничем не обязан, я задал вопрос, как его попросить. Никак. Да и нужно ли? Особенно не разобравшись в вопросе?Операции в памяти несколько быстрее, знаете...Знаете ли, не всегда. Фокс, знаете ли, СУБД, и работает по своим правилам. проходящий.Он может быть внутри. [/quot ] Он - это кто?Config.fpw проходящий.Декомпиляция.Невозможно, код собирается динамическиКод DLL? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 13:26 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
ОК, я понял, действительно, временные файлы. Динамически собирается фоксовый код, декомпиллить "авторскую" dll - малополезное занятие, поскольку все равно работа потом передается фоксовой, которую разобрать, думаю, вообще неподъемно. И вообще, трудно себе представить, как криво должен был написать программу пограммист фокспро, чтобы для отображения практически просто отсортированных и сгруппированных 10 тыс. записей процессор полчаса утилизировался на 100%. Поэтому я надеялся найти какой-то системный промах. procmon показывает все это время обращения к временным файлам, читает из них по 65К, судя по скорости, все и так сидит в памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 16:03 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
Сэмка, что-то я не понял. Ранее было заявлено сишная прога, которая вызывает фоксовую dllТеперь уже Динамически собирается фоксовый кодВы уж определитесь. работа потом передается фоксовой, которую разобрать, думаю, вообще неподъемноКому неподъемно? Вам? Может быть. Специалисту, который еще и специализируется на этом - вполне решаемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 16:24 |
|
Ограничить потребление CPU или хоть выяснить, что делается
|
|||
---|---|---|---|
#18+
А чего тут определяться, все правильно. Сишная часть - оболочка над фоксом, которая через сокет общается с программой-диспетчером. Диспетчер передает ей некие команды, которые инициируют обращения к фоксовой библиотеке. Далее уже фокс через интерфейсную таблицу получает от диспетчера входные данные (думаю, это досокетный рудимент) и на их основании динамически формирует выполняемый фоксовый код. Далее результаты через интерфейсную таблицу возвращаются диспетчеру, а тот - клиенту. Выполнеие собранной фоксовой программы и занимает те самые полчаса, в это время кроме процессора никакой другой активности нет. ЗЫ За специалистом, который специализируется на декомпилляции майкрософтовских библиотек я бы не обратился сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2009, 17:18 |
|
|
start [/forum/topic.php?fid=41&fpage=114&tid=1585927]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 313ms |
total: | 457ms |
0 / 0 |