All streams
Search
Write a publication
Pull to refresh
52
0

User

Send message
А можете как-нибудь решить проблему с массовыми действиями?
По ошибке недавно в одну цепочку прилетело 30к писем, через веб-интерфейс их не удалить — 5 минут ждет, затем пишет, что письма удалены, а на самом деле они остаются.
Спасибо, очень интересно!
В начале обещали рассказать о теоремах о невыразительности, но не рассказали :(
По поводу фич Вы правы, подход, который разделяет управление дисковыми устройствами и виртуализацией, затрудняет реализацию таких вещей. Но если говорить о производительности, sparse-файл со своей ФС внутри явно проиграет проброшенному LV или блочному устройству.

Под простотой я имел в виду внутреннее устройство. OpenVZ лезет почти во все подсистемы ядра, и переносить в осн. ветку эти воздействия начали относительно недавно. А чем больше объем системы, тем больше в ней ошибок. На ядре 2.6.18, которое совсем не использовало LXC, иногда возникали очень печальные баги (вроде проседания сети в 1.5 раза) даже без запущенных контейнеров, просто после перезагрузки в OpenVZ-ядро. Сейчас, как я понимаю, должно стать лучше.
А XML это не минус, а плюс. Все равно при продаже VPS или облаков клиентам нужно писать им панель/биллинг, и тут перекидываться xml-ками с libvirt будет удобнее, чем текстом с vzctl.
При использовании KVM накладные расходы на сеть становятся заметно ниже при использовании vhost для сети. Я бы сказал, что это только расходы на поддержку сетевого моста и tap-устройства, то есть то же самое, что и в openvz при использовании veth.
Для диска OpenVZ сейчас предлагает использовать ploop, у которого накладные расходы сравнимы с дисковыми накладными расходами от xen/kvm+virtio, так как принцип работы тот же.
Пользовательский код выполняется что на kvm, что на openvz абсолютно одинаково без оверхеда (если не считать лишнего уровня косвенности при обращении к таблице страниц (но его почти убирает TLB) и возможных тонкостей с вытеснением нужной информации из кеша). Проблема остается только с системными вызовами, но тут у каждой из виртуализаций свои проблемы.
Но KVM проще и обеспечивает больший уровень изоляции.
>да, очевидно, что Роджерс совершил преступление, получив нелегальный доступ к базе, но не меньше виноват и сам сайт, который не был способен защитить свои данные
Очевидно, что убийца совершил преступление, заколов врага ножом, но не меньше виноват и сам враг, который сделан из мяса и так легко протыкается ножом.
Заголовок немного странный: чтобы объединять усилия, должны быть усилия с обоих сторон. А усилия есть только со стороны RedHat.
Видимо, RedHat не хочет заката бесплатного варианта своей ОС (о чем многие говорили несколько лет назад, когда разработчики ссорились, CentOS6 не выходил, а баги игнорировались), поэтому берет проект под свое крыло.
Это достигается и через ls:
[boris@mbp ~]$ ls -lia /proc/`pgrep tail`/fd
[skip]
161841737 lr-x------ 1 boris boris 64 Янв  4 20:50 3 -> /home/boris/test0 (deleted)

А зачем вообще lsof? cd /proc/pid/fd, ls -lia покажет и список открытых процессом файлов, и позволит прямо оттуда скопировать их по местам.
Вот очень годная статья на тему: www.xakep.ru/post/58104/. Правда всё равно немного давнишняя.
А вот доказательство того, что расчёска работает за NlogN или хотя бы ссылка на него очень не помешала бы.
По комменту угадал школу, по нику подтвердил догадку)
Почему про другое?
А разве то, что «надевили», не нужно собирать под CentOS?
Жалко, что devtoolset нет :(
Мог бы быть gcc-4.7, что очень полезно при разработке на c++11.
Потому что open_file_cache 200000. Но по логике тогда ограничение должно быть порядка 208010.
Если вы не поленитесь, то можете сделать это программно, как показано в следующем фрагменте кода:

А можно кросплатформенно:
freopen("err.txt", "w", stderr);
Картинка намекает на то, что lock-free структуры на самом деле не существуют и ломают мозг? :)
После «Отсортирован по ключу -> Да» должно быть «Требуются частые добавления/удаления», где «Да» ведёт на set/map, а «Нет» — на «Отсортированный vector или vector<pair<key, value>>»
Не всегда :) Код, с которым я встречался в реальном проекте:
void f(int a, bool& ok = *(bool*)NULL)
{
    if (&ok) ok = ...;
}

Но это изврат

Передавать параметр list по ссылке — плохой тон. Так как функция изменяет параметр, лучше было бы передать по указателю, чтобы в месте вызова было видно, что list изменится.

Information

Rating
Does not participate
Registered
Activity