Как создать дескриптор, натравливая на который select(), select() будет сообщать, что дескриптор не готов для записи? Можно конечно создать неблокирующий сокет и сделать connect() на какой-нибудь хост и порт куда коннект не идёт (google.com:81), но это немного костыльно. Может есть какое-то устройство в /dev/ с таким свойством? Хотя неплохо бы какое-то портабельное решение nix/windows.
Вот стало интересно. Для sys V shared memory есть ipcs. А есть ли аналогичная утилита для позиксной памяти? Понятно, что есть просто ls -l /dev/shm. Может есть что-то получше?
Дано два HDD, 16 гб памяти, один из них USB. Занято 2 гб памяти, кеш несколько сотен мегабайт. Начинаем копировать данные, наблюдаем за кешем диска. После копирования 14 гб, кеш вырастает до 14500 мб и загоняет всю систему в свап, после чего kswapd0 вызывает жесткий iowait. Это гребанное кеширование настраивается?
Добрый день!
Возникла проблема с поиском подходящего дистрибутива.
Есть прекрасная утилита berryboot, но в интернете не рекомендуют использовать дистрибутивы оттуда (оптимизация под armv6, вроде).
Есть множество готовых сборок для кубика, но мой монитор (1280x1024 подключенный через переходник HDMI->DVI) сообщает «Out of range!».
Собрать генту или арч не получается, система просто не начинает грузится. Сейчас думаю, там на sunxi последний hwpack не сломан случайно?
Может кто-нибудь помочь, или предоставить образ своей системы?
Есть приложение, состоит из нескольких частей. работает по TCP/IP (Diameter), также есть HTTP (nginx). Фактически это прокси,который работает по HTTP и Diameter. Из важной информации внутри приложения - таблица роутинга сессий. Она хранится в shared memory.
Что бы хотелось, чтобы при падении приложения на одном из узлов нагрузка переносилась на второй. Оптимально будет сделать это при помощи IP alias, который назначается либо на один либо на второй сервер. Данные на начальном этапе можно просто периодически копировать с мастера на слейв. Это приемлимо, т.к. потеря этой информации не критична.
В качестве платформы используется RHEL 5.x.
Вопрос - на чем лучше сделать такую систему?
Чем паковать логи? Имеем процесс который пишет логи в огромных объемах. Например, 200k строк в секунду. Сейчас они пишутся в очередь в SHM, а оттуда отельный процес пишет в запакованные файлики. Пакуем при помощи zlib. В общем, более-менее ничего, но сейчас упаковка логов занимает больше ЦПУ, чем работа приложения. Может есть другие алгоритмы упаковки, более заточенные на логи?
Есть приложение из множеста процессов, которые общаются между собой и хранят всякие данные в shm. Возникла задача обеспечить high availability. Задумались над тем, как реплицировать наше хранилище.
Первый вариант: каким-то образом снять мгновенный snapshot.
Глобальный лок, естественно, не подходит, т.к. все надолго встанет (shm занимает не один Гиг).
Хотелось бы открыть shm на чтение так, чтобы страницы, измененные другими процессами, не менялись. Типа такой copy-on-write только «наоборот».
Второй вариант: подумать над записью дифов наших структур.
Но у нас несколько разных типов данных хранятся в разных shm, т.е. каждый раз придется заново реализовывать работу с дифами.
Kazu Yamamoto в очередной раз улучшил свой веб сервер mightyhttpd, и в очередной раз обогнал nginx в полтора раза. Хотелось бы повторить такой тест, посему хочется спросить, как можно тонко настроить nginx чтобы он позорно не слил? Тестировать собираюсь минимум на одном своём ноуте.
Пост в девелопмент, т.к. он больше про написание эффективных веб серверов, а не администрирование.
Интересуют вопросы:
Как правильно настраивать nginx, mighty и систему для быстрой отдачи пары стат страниц.
Постепенно отучаюсь использовать велосипеды собственного приготовления. Теперь для сериализации использую protobuf, но остается еще одна проблема: разделение непрерывного потока данных на отдельные сообщения.
Навелосипедить собственную реализацию - раз плюнуть (да и их есть у меня как минимум 3-4 штуки), но хочется посмотреть на готовые решения.
Из пожеланий: желательно LGPL, но подойдет и другая лицензия, позволяющая исопльзовать библиотеку в закрытых проектах, кроссплатформенность, желательно готовые версии для C++ и Java, наличие библиотеки в репозиториях популярных дистрибутивов (Ubuntu, Gentoo).
UPD: Работа с С++ является необходимой. Работа с Java и всем остальным - пожелание.
Хочу в С/C++ приложение прикрутить мониторинг по SNMP (приложение будет сервером). Было бы неплохо, если бы это работало без интеграции с net-snmp. Т.е. приложение просто слушает на каком-то порту. Есть что годное для этого? Ну и с нормальной лицензией
олсо, посоветуйте что-нибудь типа регета: графическую скачивалку, которая хорошо себя ведет с провайдерами, режущими трафик и перегруженными серверами, не любящими мультидокачку. Что-нибудь для FTP с задержкой перед переподключением в 1 миллисекунду с бесконечным количеством попыток, итп.
Едет по почте cubieboard2. Хочу дома прикрутить к телевизу для просмотра фильмов в hdd, как торентокачаку/раздавалку, може еще чего полезного поручить. Какой образ на него лучше накатить под это дело? Есть живые и счастливые пользователи?
Хочу использовать в С++ возможности lua (5.2). Предполагается что будет много скриптов и они должны будут выполять много простой логики. Притом все это дело в разных потоках паралельно и не связано между собой.
Встает вопрос, если использовать простую логику luaL_dofile() то это означает что каждый раз надо считать скприт с диска и переварить его в байткод а только потом выполнить.
Понятно дело хочется чтобы каждый из скриптов был зачитан только единожды и единожды переведен в байт код. А затем Использовать байткод сколько душе угодно.
До версии 5.2 было возможно сделать что то вроде этого
luaL_loadfile
lua_dump -> to file
luaL_loadfile
По крайней мере можно было избавится от промежуточной компиляции. Но оставалось повтороное чтение из файла.
С версии 5.2 luaL_loadfile вообще не умеет загружать байт код. (если я правильно понял они запретили этот функционал).
Возможноли решить поставленную задачу средствами lua? Если нет, то что можно использовать вместо lua?
Я могу с++ простить все, что угодно, кроме отсутсвтия мавена. Суть такова: есть проект А, который зависит от проектов B, C. Все лежат в разных репозиториях. Задача - склонировать А, запустить любимую систему сборки и получить автоподпуливание B, C, их сборку и установку.
Впринципе я могу сделать custom_target для А, благо там cmake и все далется с полпинка. Но както это уж слишком костылевелосипедно. Нету ли вменяемых инструментов решения поставленной задачи?
Для виртуального образа, который выкладывается на сайт нужен минимальный образ Centos 5. Ставлю при помощи кикстарта. Потом еще приходится вырезать ненужные пакеты. Такие как, lvm, mkinitrd, device-mapper итд.
Какие еще пути уменьшить размер получающего образа? Может есть другие минималистические сборки rpm-based дистрибутивов?
Приветствую.
Сейчас думаем над крупным проектом на openstack.. Что-то типа облачных сервисов, любых..
Железо уже есть, но нет пока понимания стоит ли связываться с Openstack…
Для начала испольуем 8 лезвий HP в белейд-карзине C3000, чуть позже приедет C7000 на 16 серверов уже..
Есть хранила HP2000 на 18Tb.