← All posts tagged Linux

fillest
Linux ? куда ещё нажать, чтоб мастер-процесс нжинкса при сегфолте писал корку? Воркеры пишут, проверяю через sudo kill -SIGSEGV
в сислоге сообщения о сегфолте вижу (как о реальном, так и о тестовом)
ulimit -c -> unlimited
cat /proc/sys/kernel/core_pattern -> /tmp/core.%t.%E.%p.%s
cat /proc/sys/fs/suid_dumpable -> 2
убунта 14
fillest
Linux sys ? на хосте крутится вебня, смачно хавая проц и бешено серя аксесс-логами. По крону запускается ротация логов, запускающая gzip. Под /usr/bin/nice -n 19. Я ожидал, что с nice она перестанет отжимать процессорное время у вебни. Но нет i.imgur.com , положение улучшилось, но не сильно — совсем захлёбываться она перестала, но латенси всё равно недопустимо подскакивает с неск мс до секунд.

Почему такое поведение? Есть ли куда нажать, чтоб оно не отжимало проц? Мб переключить шедулер?
fillest
Linux sys ? setitimer + ITIMER_PROF. Когда таймер НЕ декрементится? Когда работает системный шедулер, что ли? Что ещё может не попадать под "both when the process executes and when the system is executing on behalf of the process"?
fillest
Java Linux kafka ? есть убунта, нужен kafka, для кафки нужна жаба. Жаба нужна кошерная, для продакшена. Есть проверенный готовый способ установки? Как я понимаю, есть три стула:
1) проприетарное бинарное говно с сайта оракла, которое нужно свитерить руками, сетапить сто путей, продираться потом через дюжину экранов стектрейсов и так далее
2) ppa-репа webupd8 какого-то мутного блоггера www.webupd8.org/p/about.html (популярная, но ну_ты_понел.жпг)
3) openjdk из убунтовых реп — это какое-то швабодное говно, которое наверняка будет тормозить ещё больше, возможно ещё и глючить? А то я наелся уже с говнологсташем стартов по 5 минут на ровном месте из-за какой-то неведомой хуеты с ssl-чего-то-там. Плюс оно естественно тухлое, нужна бы 1.8, а не 1.7. Или оракловая zver-сборочка почти не отличается от openjdk? Инторнеты невнятны, вон чувак пишет что openjdk у него глючило, а починилось переходом на оракл stackoverflow.com

Хотелось бы, наверно, на 1й стул, но с минимальными повреждениями цнс и мозга
fillest
Linux ipc ? Дано: процесс S; множество инстансов процесса W, выполняющих множество рахных тасков; sqlite-база для некоторого специфичного общения между S и W. Любой из W может грязно крашнуться в любой момент (и у S могут быть произвольные даунтаймы). W пишет некоторые данные в бд, S каждые n времени читает из бд.
Нужно: каждый процесс W должен уникально идентифицировать себя таким образом, чтобы S мог определить, не крашнулся ли конкретный W. При этом W не должны зависить от S.
Текущая идея: W создаёт файл с уникальным именем, flock'ает его (такой лок автоматически освобождается ведром при гибели процесса), пишет в бд имя файла, при нормальном завершении освобождает и удаляет файл. S во время очередной итерации при подозрении на краш W пробует flock'нуть тот же файл и таким образом развеивает/подтвержает своё подозрение.
Это будет работать, но кажется немного оверкиллом, может есть попроще способ? Что-нибудь вроде возможности записать строчку куда-нибудь в proc чтобы не создавать ничего руками?
fillest
Linux disk io ? nolife Что почитать, чтобы в самых подробностях понимать, что происходит с данными от вызова write(fd, buf, len) до окончательного физического "размещения" данных внутри харда?
Есть ли что-нибудь хоть отдалённо плавно усваиваемое и информативное по аналогии с этим (пусть и не в одном месте), или придётся, укусив псилоцибина и запив бензином, читать, интерпретировать и трейсить в голове листинги ведра, дров и прошивок?

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