Обновить
12
0

Пользователь

Отправить сообщение
Точного ответа у меня нет, но есть жизненный пример.

Некий сетевой сервис, который должен работать 24/7/365 пришлось перестартовывать по cron раз в сутки, иначе он раз в несколько месяцев при всплеске нагрузки терял файловые дескрипторы сокетов (или пайпов) и переставал работать.
Какой именно модуль тут оказался кривым — сказать сложно, из специфики могу сказать, что интенсивно использовались DBI (MySQL), LWP::Simple, локальные сокеты и fork().

С другой стороны, ещё на Perl 5.005 в каких-то лохматых годах я написал специфичный web-сервер, который именно работал круглосуточно и без перезапусков месяцами и годами — его аптайм всегда был равен аптайму сервера.

Как настоящий гик, наверно, я должен был кинуться и найти, что именно и куда утекает, но ежедневные задачи не дали мне этого сделать :) или попросту было лень :)
Да, согласен.

Кстати, если внимательно посмотреть на «идею», окажется, что результирующий поток — всего лишь инвертирован и сдвинут вправо на один бит.

Архиваторам это должно сильно помочь :)

Вообще, с битами возиться довольно глупо — архиваторы сжимают байты.
Ещё бы пластик не такой противный на ощупь был — можно было бы брать ;)
Если опустить шелуху, автора предлагает использовать какого-то странного вида RLE, применённого к битам.
Не хочется его огорчать, но аналог RLE применяется для пред-обработки данных перед сжатием довольно часто.
Мож они ещё нам напишут указ как переменные называть?
Понятно какой — скачанный с торретов и с приклеенным к нему кейлоггером :)
Спасибо.
Продолжения, видимо, не будет т.к. уже в результате этого поста я уже ничего писать не могу.
Надо было написать про айфон :)
Про cpan знаю и использую когда есть возможность.

К сожалению, при использовании модулей с cpan приложение резко теряет в мобильности.
Поэтому если к скрипту главное требование — чтобы он работал везде, где его запустят, cpan с собой уже таскать не стоит.
Кроме этого, при апгрейде системы скомпилированные модули могут поломаться и всё придётся пересобирать, всё это связанно с проблемами при поддержке.
А с бандлами в perl, к сожалению, до сих пор не всё гладко.

Этот скрипт — абсолютно переносим.

В этом его главное преимущество.

Недостатки тоже есть и они известны.

Ну а насчёт течки по памяти… к сожалению, в perl текут и более насущные места кроме eval.
Интересная штука, спасибо.
Когда я делал тот веб-сервис, perl был ещё 5.005, ничего такого не было.
Если буду делать что-то для web, посмотрю на Mojolicious в первую очередь.
В теории да.
На практике это происходит не всегда.
В другой (версии) ОС — немного другие версии тех же приложений и конфиги у них иногда немного отличаются. Причём, совместимость вперёд иногда настолько относительна, что проще снести и настроить заново, чем искать, какая настройка переехала в какую секцию и от какой буквы зачитка конфига рушит новое приложение.
Всё зависит от аккуратности разработчиков конкретного приложения.

Мне, например, опять предстоит апгрейд и я трусливо оттягиваю этот день :)

А ведь ещё есть и системные настройки, которые лежат, в основном, в /etc, /var, /usr/local и хз ещё где.

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

Это я всё к тому, что прозрачная и безболезненная переинсталляция системы простым сохранением /home не решается.
При подаче заявки через сайт чеку появиться физически неоткуда.
Но даже если приехать ногами в тот же руцентр, дают довольно смешную (с точки зрения закона) бумажку.
Доменные споры пока у нас решаются в индивидуальном порядке, т.е. заранее результат предсказать тяжело.
Так можно сказать, но обычно приходится использовать то, что уже стоит на сервере.
Качают и ставят — когда совсем нечем заменить. или нечем заняться 8)
Зависит от ситуации.
Часто бывает проще написать
$ flock -n /tmp/lock -c mycommand || echo Fail
чем что-то качать, собирать и ставить.
Он выставляет статус, можно на него ругаться вручную через $?
на сколько я знаю, нету.
для BSD пойдёт :)
man 2 flock — совсем не тоже самое, что man 1 flock.
Второе — уже утилита.
Для WAV, AVI, EXE (и многих подобных chunked-форматов) есть гораздо более секретный способ: хранить свои данные между чанками. Там во всех заголовках указаны смещения к полезным данным. Данные можно отодвинуть, а после заголовка положить что надо.
man 1 flock
функций даже побольше, есть в стандартных конфигурациях в линуксе
1. У htop в настройках (F2) полезно включить вообще все виды раскраски, которые там есть — появляется дополнительная полезная инфа.
2. Нет ли подобной подборки по смежной теме всяких статусо-статистико-мониторилок типа iostat, vmstat, sar и прочих?
Там, скорее, смысл в другом — отслеживание поведения юзаря в пределах одного сайта. Прекрасно работает локально.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность