LINUX.ORG.RU

Монолитный Perl и виртуальные машины по 700 Гб оперативной памяти

 


1

4

Добрый день. Подскажите, пожалуйста, ваши рекомендации (мои аргументы как сеньора девопса уже давно закончились). Заказчик имеет виртуальную машину на 700 ГБ оперативной памяти на ферме собственного железа (Proxmox, конечно же, без кластера), внутри которой находится монолитный Perl в 16000+ потоков/процессов, MySQL, KeyDB, Memcached и еще туда сюда. Стартует это всё около 1 часа. Реализация выполнена полностью руками разрабов из разряда «как смогли, так и сделали, ну оно же работает».

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

Посоветуйте, пожалуйста, что мне сказать заказчику почему у него всё работает не как должно?

Перемещено dataman из development



Последнее исправление: dataman (всего исправлений: 3)

Монолитный Perl и виртуальные машины по 700 Гб оперативной памяти

Ностальжи.

Foxpro 2.6 не умел работать с строками быстро.
«Подружил» Foxpro 2.6 с Perl и отчёты стали на порядки быстрее формироваться.
Не знаю как ныне, а раньше Perl хвалили именно за это.
На нём можно было быстро парсить текст, …

anonymous
()
Ответ на: комментарий от sokolaa

В текущей ситуации мне интересно мнение экспертов

мнение экспертов здесь следующее:

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

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

borisych ★★★★★
()
Ответ на: комментарий от anonymous

Хрен его знает… Я даже спрашивать боюсь если честно, потому что начинаются бесполезные созвоны где устаревшие на 10-20 лет головы строят свои предположения как было бы хорошо жить. Но при этом ничего не меняются вообще. Стабильно тут только падения) Я как девопс не хочу сюда лезть в эти слои)

sokolaa
() автор топика
Ответ на: комментарий от Chiffchaff

Мы «распробовавшие» эту технологию понимаем друг друга сразу ) И реально сейчас жить без неё невозможно. А обьяснить об её пользе/преимуществах не пробовавшим достаточно сложно) Они сами придут к этому, просто позже.

sokolaa
() автор топика
Ответ на: комментарий от sokolaa

Когда уволюсь к чертям отсюда, то поделюсь всем ) Куда не надо идти на работу ))

А квест то интересный.
А исходников проекта три гига или больше?

anonymous
()

Интимный вопрос: а сортировка пузырьком там внутре есть?

Скорее всего, там не только в CRM такое, в фирме вообще все неладно, от кадров до аудита, и тут уж вообще вопрос, кто выгодоприобретатель от существования бардака, и совсем не очевидно, что директор.

Irma ★★★
()
Ответ на: комментарий от anonymous

Не знаю как ныне, а раньше Perl хвалили именно за это.

Вот один из примеров.
2000 расчётных листков в три столбца Foxpro формировал 25 сек, а на Perl менее секунды
Пробовал разместить все расчётные листки по горизонтали - менее секунды.
Неплохо ведь, правда?

anonymous
()
Ответ на: комментарий от sokolaa

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

Да. Но это не сделает плохо написанное приложение работать лучше.

А почему не определить причины нестабильности и попробовать их устранить именно их?

Аналогично если что-то сдохло или взломали, то решается это переразворотом контейнера за минуту.

Или Ансиблом.

В текущей ситуации мне интересно мнение экспертов, чем можно еще оперировать. Я указал, что все известные аргументы мной уже использованы.

Так ты же сам сказал, что начальство считает тебя некомпетентным. Понятно, что в таком случае оно к тебе не будет прислушиваться вне зависимости от твоих аргументов.

urxvt ★★★★★
()
Ответ на: комментарий от borisych

долгосрочное сотрудничество обычно начинается с того, что заказчику за довольно короткий промежуток времени демострируются способности исполнителя (условно инфаркт переквалифицируем в изжогу)

Ну да, ну да. Знакомо. «Мы тут тебя наняли за 100500 денег распутать ситуацию, в которой сами не можем разобраться уже 10 лет. Вот тебе клава, вот тебе чатег разрабов, давай за час разберись. Часики тикают, денежки капают. Тебе разве не такие деньги, как всем дают, что они, меченые что-ли? Давай, программировай»

Из таких мест сразу надо БЕЖАТЬ. Но это понимание приходит только с опытом.

Chiffchaff
()
Ответ на: комментарий от firkax

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

rtxtxtrx ★★★
()
Ответ на: комментарий от Chiffchaff

Если бы все было так просто. Проблемы обычно на специфичном наборе данных и в специфичных условиях (прод БД + прод трафик и т. п.).
Я так понимаю, оно не просто падает через банальные ошибки в коде.

urxvt ★★★★★
()
Ответ на: комментарий от Chiffchaff

Ну да, ну да. Знакомо. «Мы тут тебя наняли за 100500 денег распутать ситуацию, в которой сами не можем разобраться уже 10 лет.

Приезжает новоиспечённый адвокат домой и отец на радостях ему отдаёт самоё лучшее дело.
Через неделю сын радостно сообщил отцу, что дело он закрыл.
Отец ему говорит - «Нас это дело двадцать лет кормило, а ты за неделю его разорил».

anonymous
()
Ответ на: комментарий от borisych

Именно так. Аргумент вида «И люди не понимают, что они отстали на 10-15 лет от прогресса» (на прошлой странице) - это крайне плохой аргумент.

Dimez ★★★★★
()

Разговаривать с любым человеком нужно на его языке. Если это человек бизнеса, то ты ничего не докажешь и не объянишь используя слова докер, легаси и тех долг. Это все пустое. Хочешь объяснить бизнесу показывай расчеты в деньгах.

Вариант 1. Ничего не трогаем. На 5 лет на понадобится столько то денег потому что содержание стоит столько то + 10% каждый месяц - так как система разваливается и тянет все больше железа. Желательно эти цифры брать не с головы, а из какой либо система мониторинга.

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

Дальше даешь ему 2 цифры с деньгами и пусть САМ решает что выбрать.

AoD314
()
Ответ на: комментарий от firkax

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

rtxtxtrx ★★★
()
Ответ на: комментарий от anonymous

Есть и такой подход, да. Но лично мне он не по душе.

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

Я не социопат и не хочу им становиться.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

Вот тебе клава, вот тебе чатег разрабов, давай за час разберись. Часики тикают, денежки капают.

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

borisych ★★★★★
()
Ответ на: комментарий от rtxtxtrx

я бы на go переписал. perl плох отсутствием программистов. многие из тех, кто заявляют, что они его знают

Perl это «зеркало», которое всегда повинно в том, что морда крива …

anonymous
()
Ответ на: комментарий от urxvt

А почему не определить причины нестабильности и попробовать их устранить именно их?

Скорее всего, всё настолько запутано, что является карточным домиком.

Существует в одном экземпляре, который рушится от дуновения ветра. Никакой прозрачности по части логирования, других метрик нет.

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

Короче, есть такие проекты. Куда не посмотришь - всюду клин.

Я в жизни сталкивался раза 4-5.

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

Но обычно, у тех, у кого такие говнолиты в проде, и характер тоже соответствующий. Это значит многократные ежедневные созвоны с ором и угрозами, и прочие прелести.

И они НЕ ПОНИМАЮТ, что с говнолитом что-то не так. Скорее всего, они говорят: «Хочу, чтобы мой говнолит ещё начал завтра же поддерживать вот такую функциональность» (обычно список, который даже в проекте с хорошей архитектурой занимает месяцы).

В общем, рад за тех, кто ни разу с таким не сталкивался.

Но оно есть. И оно есть даже в компаниях «с мировым уровнем».

Chiffchaff
()
Ответ на: комментарий от rtxtxtrx

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

Зато вот щёки надувать таковые обычно - СПЕЦЫ.

anonymous
()
Ответ на: комментарий от borisych

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

Ну вот, допустим, я пришёл на работу. Там гигантский портал. Скажем, что-то типа cian.ru, хотя это ещё просто.

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

Если же у нас дурнопахнущая постоянно валящаяся куча, то для того, чтобы продемонстрировать какие-то реальные результаты, точно понадобятся месяцы.

Всё это время, на твою голову будут сыпаться проклятия, потому что «тебя ведь взяли, чтобы ты эти проблемы исправил! за дни! мы тебе дали уже 7 дней, имярек, а ничего ещё не сделано!»

Понятно, что если придёшь в IT контору, условный Яндекс, то такого не будет. Но в конторах, которые не-IT, или только пыжатся, что они в IT, такое сплошь и рядом.

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

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

Чем больше гигант - тем больше там подобного, ты тут тоже безусловно прав.

sokolaa
() автор топика
Ответ на: комментарий от anonymous

внутри которой находится монолитный Perl в 16000+ потоков/процессов.

Вспомнилось письмо Ваньки Жукова дедушки …
Привести его текст с переносом на этот проект?

anonymous
()
Ответ на: комментарий от thesis

Патамушта там 20 железок, забитых подобной подливой. Виртуалки, внутри которых древний монолитный перл в легаси и хардкодом и их около 50. Соединённых между собой тупым длинком вторыми физическими интерфейсами серверов, а первые торчат во внешку. Но проблем никто не видит. Просто сисодмины не кволифецированы.

sokolaa
() автор топика
Ответ на: комментарий от sokolaa

Проблем никто не видит, возможно потому что их нет))).

Если ты на работе тратишь 100к денег на электричество это проблема или нет ? А если ты дома тратишь 100к денег на электричество ?

Может для них это не проблема. Зачем решать не проблемы ?

AoD314
()
Ответ на: комментарий от Chiffchaff

Скажем, что-то типа cian.ru, хотя это ещё просто

Любому разработчику со стороны просто, чтобы хотя бы контекст разработки всосать

за условный cian.ru я попрошу сразу некую сумму (2-3 среднемесячных заработка) без каких-либо предусловий, чтобы просто посмотреть на его код и сказать буду я в это ввязываться вообще или нет (для понимания: за посмотреть не я плачу, а мне, мы таки не в борделе) - это не у меня проблемы с ПО, которое приносит деньги, а у бизнеса.

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

borisych ★★★★★
()
Ответ на: комментарий от sokolaa

Патамушта там 20 железок, забитых подобной подливой

снова эксперты в треде:

утром была одна виртуалка на 700Gb, вечером их уже стало 20… В купе с perl наверняка тут история никак не меньше чем про booking.com или по крайней мере его филиал. OK, так уж и быть, за десятку я могу взглянуть на код и выхлоп atop

borisych ★★★★★
()
Ответ на: комментарий от borisych

за условный cian.ru я попрошу сразу некую сумму (2-3 среднемесячных заработка) без каких-либо предусловий, чтобы просто посмотреть на его код и сказать буду я в это ввязываться вообще или нет (для понимания: за посмотреть не я плачу, а мне, мы таки не в борделе) - это не у меня проблемы с ПО, которое приносит деньги, а у бизнеса.

Вообще-то я и говорю, что бизнес/бизнесмен с говнолитом уже на этом этапе скажет: «Чё? За чё столько платить-то? Ты чё, самый умный что-ли? Мне нужен конкретный результат, и нужен быстро!»

А другому, который хотя бы немного в теме, и объяснять ничего не надо будет, он сам поймёт куда копать и кого взять.

Вот как отличить первого от второго… Загадка. Эвристики со временем появляются, но они не абсолютно надёжные.

Chiffchaff
()
Ответ на: комментарий от borisych

Обсуждается конкретно одна виртуалка. А всего виртуалок около 50 штук на 20 железных серверах в разных версиях Proxmox без кластера, соединённых тупым свитчом в KVM/LXC в перемешку, с разными настройками ЦПУ и РАМ. И все виртуалки с софтом забиты монолитным древним легаси перла.

sokolaa
() автор топика
Ответ на: комментарий от borisych

если вы начали решать проблему с установки докеров и предложений менять архитектуру вместо сбора диагностики (каким бы старым не был perl, возможности профилирования у него вполне себе на уровне, а тут вы даже не удосужились рассказать CGI это или mod_perl), то нужно честно признаться в своей некомпетентности

Как много оперативной памяти должна потреблять одна горизонтально немасштабируемая виртуалка, чтобы можно было не глядя отбросить вертикальное масштабирование как опцию? Интерес частично подлинный, ибо в моих неадминских глазах 700G на одну виртуалку выглядит довольно безнадёжно. Хорошо, конечно, если получится сократить до 350G, но решит ли это более общую проблему под названием «работает нестабильно и плохо, подвисает»? И 350G всё равно выглядит ужасно.

kaldeon
()
Ответ на: комментарий от sokolaa

древний монолитный кусок говна

Это не проблема, а свойство системы.

Ты нанят IT специалистом или инвестором? Деньги - это к бизнесу. Ты видишь проблему с нестабильностью. Предлагаешь техническое решение(как IT спец) - сделать кучу серверов. Бизнес платит - за сервера, за твою зарплату и за все остальное.

В чем проблема?

AoD314
()