LINUX.ORG.RU

Избранные сообщения KosmiK

Выход нативного клиента для Yandex.Disk

Форум — Talks

Сабж. Пока только консольный, но вполне себе рабочий. При написании использовались православные инструменты- QtCreator, KDevelop и gdb.

Скачать бесплатно и без СМС

Полная новость на швабре: Сами найдете, неохота эту мерзость сюда тащить.

 ,

Akamanah
()

Вышел патчсет Reiser4 для Linux 3.10

Новости — Ядро Linux
Группа Ядро Linux

Эдуард Шишкин объявил о выходе патчсета Reiser4 для Linux 3.10, в котором, кроме адаптации кода для новой версии ядра, была исправлена ошибка, приводящая к краху при хранении данных в сжатом виде.

Результаты тестов с Ext4, XFS и Btrfs

>>> Подробности

 , ,

smilessss
()

gcc cache size

Форум — General

Есть процессор с corei5 430m на борту.

$ lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 37
Model name:            Intel(R) Core(TM) i5 CPU       M 430  @ 2.27GHz
Stepping:              2
CPU MHz:               1733.000
BogoMIPS:              4522.44
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
Вопрос: какие значение параметров нужно задать:.
--param l1-cache-size
--param l1-cache-line-size
--param l2-cache-size

Сейчас стоит --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072

Проблема в том, что разные версии компилятора (4.6.4 и 4.8.1) советуют ставить разные флаги,
4.6.4 l2-cache-size=3072, l1-cache-size=32, l1-cache-line-size=64 4.8.1 --param l2-cache-size=256, но l1-cache-size=0, l1-cache-line-size=0

Какие лучше значение установить?

 , ,

ymuv
()

Chromium, шревты и 78 метров оперативки

Галерея — Скриншоты

Собрал себе 3.11-rc3 c UKSM, потребление памяти упало в разы.
Покрутил infinality и вроде стало меньше мыла.
Думаю ещё chromium пересобрать для полного счастья.
Если ibiru ответит на мыло думаю на его сервере это не займёт много времени.
А ещё купил себе бумажную книгу, которая тоже попала в кадр.

png для ценителей

 , ,

smilessss
()

Страница убийца

Форум — Talks

http://ec2-54-229-117-209.eu-west-1.compute.amazonaws.com/party.html

Кому скучно, может попробовать открыть. ))

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

Надеюсь, меня не забанят )

hibou
()

ZBackup 1.0

Новости — Open Source
Группа Open Source

Вышел первый публичный релиз утилиты резервного копирования с глобальной дедупликацией zbackup. Программа находит области, содержащие одни и те же данные во всех сохраняемых в неё образах, и сохраняет их только один раз. Данные затем сжимаются и, по желанию, шифруются. Оптимально подавать на вход один большой .tar файл, содержащий полный бэкап системы, или же непосредственно сырой образ диска, подлежащий резервному копированию - программа не пытается интерпретировать формат файла, а просто дедуплицирует любой полученный от пользователя. Дедупликация глобальна - данные, полученные в разное время из разных образов, сохраняются только один раз. За счет этого достигается высокая инкрементальность и низкие затраты дискового пространства.

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

( читать дальше... )

Домашняя страница программы: http://zbackup.org/

Страница разработки на github: https://github.com/zbackup/zbackup/

>>> Версия 1.0 (tar.gz)

 , , , zbackup

ikm
()

SYN_SENT hang

Форум — Admin

После 8 часов работы компьютера все tcp запросы идут жэсточайшэ долго на любой хост. провайдер - byfly

curl -v http://www.google.by
netstat -np | grep -i curl
> tcp        0      1 192.168.0.3:59216       173.194.40.87:80        SYN_SENT    13244/curl
sudo grep -i "173.194.40.87" /proc/net/ip_conntrack
> 104 SYN_SENT src=192.168.0.3 dst=173.194.40.87 sport=59216 dport=80 [UNREPLIED] src=173.194.40.87 dst=192.168.0.3 sport=80 dport=59216 secctx=null use=2
таблица ip_conntrack не переполняется

  • перезагрузка компа - сразу все отлично
  • смена mac адреса модема - никакого толку
  • перезагрузка модема и его друзей посредством отключения питания - никакого толку
  • смена mac адреса компа и перезапуск dhcp - никакого толку
  • выгрузить/загрузить модуль r8169 - никакого толку
  • отключить tcp_sack, перезагрузится и подождать 8 часов - никакого толку
  • подождать 2-3 часа - снова все отлично

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

есть достаточно знаменитый тред. читал и кивал головой. вродебы они пришли к тому что «Ephemeral Port Range» нужно изменить

sudo cat /proc/sys/net/ipv4/ip_local_port_range
>32768	61000

описанными в треде портами 3127-3198 тут не пахнет. и как этот промежуток изменить, чтобы syn_sent не бесил?

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

 ,

punya
()

показать строку, не содержащую X, но содержащую Y

Форум — General

пытаюсь заставить grep показать строку, в которой есть Y, но перед ним нет X
grep [^X]Y не показывает строки, в которых есть Y. не могу понять

 ,

teod0r
()

Новый планировщик процессов на основе BFS

Новости — Linux General
Группа Linux General

Появился новый планировщик задач, основанный на коде BFS (Brain Fuck Scheduler), но с возможностью использования нескольких очередей выполнения.
BFS сам по себе использует только одну очередь выполнения для всех CPU. Это позволяет избежать накладных расходов на балансировку нагрузки, но не очень хорошо масштабируется.

Какие преимущества у нового планировщика по сравнению с другими планировщиками?

  • Он является более масштабируемым, чем BFS.
  • Может в будущем иметь все возможности BFS и CFS, особенно высокую пропускную способность и низкую латентность.
  • Имеет гораздо меньше строк кода, чем CFS.

Какие у него недостатки по сравнению с другими планировщиками?

  • Он не является стабильным.
  • Он не проверялся ни на чём, кроме как на KVM с 4 CPU.
  • Многие функции еще не работают или не реализованы вовсе.

>>> Подробности

 ,

kerneliq
()

Gentoo на ZFS

Галерея — Скриншоты

Не спрашивайте - зачем. Просто так, потому что можно. Ну и к тому же можно ссылаться на этот топик в ответ на вбросы бздунов насчёт «а этот ваш Линукс умеет ZFS?». Умеет, как видите.

Краткий мануал по красноглазию:

1) Создаём раздел для ZFS. После этого потребуется создать пул. Пул - это что-то вроде виртуального устройства.

zpool create zero /dev/sda2

«zero» - это моё название пула. У вас оно может быть любым другим. Просто создать пул как-то неинтересно, поэтому повключаем всякие разные плюшки ZFS. Включаем дедупликацию:

zfs set dedup=on zero

и сжатие:

zfs set compress=lzjb zero

и отключаем обновление временных меток:

zfs set atime=off zero

ну и отключаем монтирование средствами самой ZFS дабы избежать неудобств на стадии сборки системы в chroot:

zfs set mountpoint=legacy zero

2) Теперь у нас есть чистый пул, но пул - это ещё не ФС. Чтобы установить туда систему, нужно создать файловые системы на этом пуле. Прелесть ZFS в том, что на одном пуле можно создать кучу ФС, каждой из которых можно задать свои опции. Например, я создал ФС для корня (и уже при создании говорим zfs, что монтировать создаваемые ФС мы будем вручную через mount):

zfs create -o mountpoint=legacy zfs/system

Эта ФС унаследовала все опции (дедупликация, сжатие) от пула, потому что для корня такие опции, в общем-то, неплохи. Далее я создал ФС специально для дерева portage, оверлеев и каталога с исходниками ядра:

zfs create -o mountpoint=legacy zfs/src

Так как на этой ФС будет куча текстовых файлов, обращаться к которым придётся сравнительно редко, здесь имеет смысл задействовать несколько иные опции. Например, усилить сжатие (после дефиса указана степень сжатия, диапазон - от 1 до 9, по умолчанию 6):

zfs set compress=gzip-9 zero/src

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

zfs set dedup=off zfs/src

Отдельная ФС для /home:

zfs create -o mountpoint=legacy zero/home

Опции пусть будут унаследованы от пула. Далее я перестраховался и создал отдельную ФС для /var, потому что в какой-то там рассылке видел упоминание каких-то багов при дедупликации на /var. Посты были датированы ещё прошлым годом, с тех пор утекло много воды, но бережёного случай бережёт:

zfs create -o mountpoint=legacy zero/var
zfs set dedup=off zero/var

3) Далее у нас стандартная сборка Gentoo. Монтируем будущий корень:

mount -t zfs zero/system /mnt/system

и остальные ФС:

mount -t zfs zero/src /mnt/system/src
mount -t zfs zero/home /mnt/system/home
mount -t zfs zero/var /mnt/system/var
mount /dev/sda1 /mnt/system/boot

После чего монтируем нужные виртуальные ФС (proc, dev, sys), монтируем хранилище архивов с исходниками пакетов, в общем, всё по хэнбуку, поэтому не стану заострять на этом внимания. Внимание требуется на этапе установки и сборки ядра. Устанавливать нужно это милое ядрышко (перед этим нужно будет включить флаг zfs, я думаю, разберётесь сами):

layman -a init6
emerge geek-sources

На этапе сборки ядра нужно учесть некоторые детали. Например, в мануалах написано, что нужно включить опцию CONFIG_KALLSYMS и отключить CONFIG_PREEMPT (т.е. установить её в значение «Server») Первую-то я включил, а отключать вторую меня жаба задавила (эта опция влияет на отзывчивость ядра), тем более что на Гитхабе я читал, что в последних версиях zfsonlinux проблемы с этой опцией ядра устранены. После этого, конечно, включаем SPL и ZFS. Первая опция находится прямо в корне конфигуратора, а вторая - в секции «File systems». А вот далее важно не пойти на поводу мануалов Гитхаба, ибо это чревато феерическим ментальным трахом. В мануалах тех написано, что нужно добавить указанный там оверлей и установить оттуда особые версии dracut и genkernel для сборки initramfs с поддержкой ZFS, ибо даже жёсткое включение ZFS в ядро не позволяет загрузить систему с корня ZFS (нужны утилиты для работы с ZFS, которые должны находиться в initramfs). Собственно, я так и сделал. После чего на протяжении дня сношался с кривоглючным dracut, упорно не желавшим включать утилиты ZFS в initramfs. Я даже вытягивал какие-то древние версии dracut и устанавливал их через make install, потом уже добавлял нужные файлы в initramfs вручную - чего я только ни делал! А оказалось, что нужно было тупо забить на эти горе-мануалы и установить самый стандартный genkernel из официального дерева. И всё правильно собирается следующей командой:

genkernel all --no-clean --makeopts=-j16 --zfs --bootloader=grub2

вот и вся недолга. Если перед этим вы успели собрать и установить Grub2, то genkernel сам добавит в grub.cfg нужные опции (укажет ФС, с которой грузить систему, в моём случае это zero/system).

На стадии формирования списка загружаемых демонов нужно сделать следующее:

rc-update add zfs boot
rc-update add zfs-shutdown shutdown

4) Монтирование файловых систем ZFS. Вообще, монтировать их можно двумя способами: посредством утилиты zfs через задание точки монтирования:

zfs set mountpoint=$DIR $FS

или через fstab с предварительным отключением автомонтирования:

zfs set mountpoint=legacy $FS

Запись в fstab для, например, корня, не содержит ничего сверхъестественного:

zero/system        /        zfs        noatime        0 0

Способ монтирования выбирать вам. Следует лишь иметь в виду, что при монтировании через fstab zfs-shutdown будет ругаться при выключении.

5) Вообще это нужно делать раньше, но, в принципе, пофиг:

hostid > /etc/hostid (это в chroot)
cp /etc/zfs/zpool.cache /mnt/system/etc/zfs

6) Если у вас меньше 2 Гб оперативки, то ZFS своим кэшем может сожрать всю раму и завесить систему. Поэтому имеет смысл ограничить её аппетиты:

echo "options zfs zfs_arc_max=512M" > /etc/modprobe.d/zfs.conf

Я выставил 1 Гб.

7) Отмонтируем все ФС, делаем

zpool export zero

и перезагружаемся в свежую систему. Не знаю, как получится у вас, а лично у меня initramfs не может импортировать пул и потому вываливается в busybox. Не проблема, входим в его шелл и импортируем пул вручную:

zpool import zero
exit

и система далее нормально загружается.

Какие профиты? Ну, она явно быстрее ранее используемой мной Btrfs. Опять же, на Btrfs нет дедупликации, и сжатие можно применить/отключить только на весь раздел. Сжатие lzjb не так заметно экономит место (это просто быстрый алгоритм), а вот gzip-9 сжал дерево portage с 350 Мб до 256 Мб, а каталог исходников ядра - так вообще в 2 раза, с 800 с лишним Мб до 400 с лишним. Причём на скорости сборки ядра это практически не отразилось (замерял через time). А ещё в ZFS есть контрольные суммы, так что о целостности системы можно вообще не беспокоиться. Но самое главное, конечно - это снапшоты. Я, попробовав раз снапшоты ещё в Btrfs, так и не смог от них отказаться.

Маленькое дополнение: почитав преисполненные страха комментарии про снижение скорости из-за дедупликации я её таки отключил на всех ФС. И ещё: возможно, я что-то не так делал, но монтирование ZFS посредством утилиты zfs я так и не осилил нормально. В итоге я просто выставил legacy на все ФС, внёс их в fstab и выкинул zfs-shutdown из скриптов выключения.

 , , , ,

Kindly_Cat
()

Infinity 2013

Галерея — Скриншоты

Нетбук Asus N10J, gentoo. Компоненты: LXDE, compiz, emerald, gtk2. Готовлю себе stage4 к Новому году. Размер полностью укомплектованной рабочей системы будет около 1 Гб. Специальная оптимизация для процессоров atom. Аппаратная поддержка HD видео без синюшный лиц, ну очень удобное управление окнами приложений без использования строки заголовка и прочие четко выверенные плюхи.

Получается быстрая система, даже по моим меркам.

P.S.

Почему infinity? - совершенствоваться можно бесконечно

 

glibych
()

Yer another goto 10 labirint generator

Форум — Talks

Сегодня по интернетам гуляет переделка старой софтины для генерации лабиринтов. Однако, она использует юникодные символы и, потому, подходит не для всех терминалов. Решил написать свою версию, генерирующую другой вариант лабиринтов, который прекрасно отображается на всех типах терминалов, и который я прекрасно помню по Dungeon Crawl Stone Soup в консоли:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(){
        srand(time(0));
        for(;;)putchar(((int)(2.0*rand()/(RAND_MAX+1.0))) ? '#' : ' ');
}
PS. Вывод лучше перенаправлять в файл, а то софтина генерирует лабиринты очень шустро. На моей машине за 10 секунд генерируется ~450 Мбайт лабиринтов. PS2. main() всегда int, даже когда в ней бесконечный цикл. Поскольку, дальше бесконечного цикда дело не пойдёт, то нет смысла добавлять «return 0;», в любом случае в оболочку будет возвращено число отличное от нуля.

saahriktu
()

It's all about perfomance

Галерея — Скриншоты

Debian Sid + LXDE на USB-флешке. Настроено по возможности минималистично, но не в ущерб удобству. Со старта забивается всего лишь 65мб озу.

Ford_Focus
()

cgroups попытки ограничить ресурсы

Форум — Admin

Добрый день,

Вторые сутки бьюсь над проблемой ограничения ресурсов, и пока не уверен что достиг того что надо. Буду рад, если направите в правильное русло.

Суть задачи. N пользователей заходят на машину под CentOS 6.4 x64 и запускают любую из 3 программ (prog1,prog2,prog3). Я очень хочу чтобы каждому юзеру под нужды этой программы выделялось 256M RAM (+256M swap при необходимости), ну и процессорной мощности чуть меньше (но тут вообще сферически-эмпирический подход)

Итак, в /etc/cgconfig.conf пишу

group prog_rules {
        cpuacct {
                cpuacct.usage="0";
        }
        cpu {
                cpu.rt_period_us=5000000;
                cpu.rt_runtime_us=90000;
                cpu.shares=80;
        }
        memory {
                memory.limit_in_bytes="256M";
                memory.memsw.limit_in_bytes="512M";
                memory.swappiness="20";
                memory.use_hierarchy="1";
        }
}

в /etc/cgrules.conf первое что пришло в голову это

*:prog1 cpu,memory,cpuacct  prog_rules/
*:prog2 cpu,memory,cpuacct  prog_rules/
*:prog3 cpu,memory,cpuacct  prog_rules/

но сильно показалось, что 256M на программу стали делиться между всеми пользователями. Т.е. user1 запустил prog1 - получил 256М, user2 запустил prog1 - теперь на каждого по 128М, user3 запустил prog1 - теперь 256 делим уже на трех.. Это категорически не подходит.

Решил описать каждого юзера (думаю, это вообще ошибочный путь, ибо пользователей не мало. Идея опичать группы @usergroup:progN cpu,memory.. кажется логичной, но боюсь что лимит будут делиться опять на всех юзеров пропорционально..)

user1:prog1 cpu,memory,cpuacct  prog_rules/
user1:prog2 cpu,memory,cpuacct  prog_rules/
user1:prog3 cpu,memory,cpuacct  prog_rules/

user2:prog1 cpu,memory,cpuacct  prog_rules/
user2:prog2 cpu,memory,cpuacct  prog_rules/
user2:prog3 cpu,memory,cpuacct  prog_rules/

user3:prog1 cpu,memory,cpuacct  prog_rules/
user3:prog2 cpu,memory,cpuacct  prog_rules/
user3:prog3 cpu,memory,cpuacct  prog_rules/

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

Может я чтото делаю не так?

 , , ,

x09
()

Линус Торвальдс ответил на вопросы посетителей slashdot.org

Новости — Linux General
Группа Linux General

Одиннадцатого октября сего года Линус Торвальдс ответил на вопросы аудитории сайта slashdot.org.

( читать дальше... )

>>> Подробности

 , , ,

Kindly_Cat
()

Решил попробовать btrfs

Форум — Talks

Зачесалось мне, тут, пощупать в деле btrfs, а именно - её фичу прозрачной компрессии. Что ж, дурное дело - нехитрое.

[$] sudo dd if=/dev/zero bs=1M count=1024 of=btrfs.img                                        
1024+0 записей получено
1024+0 записей отправлено
 скопировано 1073741824 байта (1,1 GB), 11,4495 c, 93,8 MB/c
[$] sudo mkfs.btrfs ./btrfs.img                                                               

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on ./btrfs.img
	nodesize 4096 leafsize 4096 sectorsize 4096 size 1.00GB
Btrfs Btrfs v0.19
[$] sudo mount -t btrfs -o compress=lzo ./btrfs.img /mnt
[$] df -h /mnt                                                                             
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/loop0         1,0G          56K  894M            1% /mnt
Хм, где мои 106 метров? А, ну да, метаданные-шметаданные, занято, значит нужно, наверное. Что ж, попробуем на неё что-нибудь записать. Например, папку с фоточками.
[$] du -h Барселона
24M	Барселона/Конфа
93M	Барселона/Монсеррат
540M	Барселона
Отлично, размер подходит. Пишем:
[$] sudo rsync -av Барселона /mnt
sending incremental file list
Барселона/
Барселона/P1020344.JPG
...
...
...
Барселона/P1020541.JPG
Барселона/P1020541.MOV
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: write failed on "/mnt/Барселона/P1020541.MOV": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9]
rsync: connection unexpectedly closed (2388 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
WTF? O_o
[$] du -h /mnt
0	/mnt/Барселона/Конфа
0	/mnt/Барселона/Монсеррат
206M	/mnt/Барселона
206M	/mnt
[$] df -h /mnt
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/loop0         1,0G         206M   76M           74% /mnt
O_O
Отличненько мы место сэкономили... И это ещё предлагают использовать для корня в мейнстрим-дистрибутивах? Вы как хотите, а я пас. Проживу, как-нибудь, без сжатия.
Дискасс.

 ,

Axon
()

Серьезный баг в ext4

Форум — Talks

http://www.phoronix.com/scan.php?page=news_item&px=MTIxNDQ

Для !Ъ:

Баг появился в 3.6.2, позже бэкпортирован в 3.5 и 3.4. Суть в том, что можно потерять кучу данных, произведя несколько перезагрузок подряд с минимальным перерывом.

Ted Ts'o:

I think I've found the problem. I believe the commit at fault is commit 14b4ed22a6 (upstream commit eeecef0af5e):

jbd2: don't write superblock when if its empty

which first appeared in v3.6.2.

The reason why the problem happens rarely is that the effect of the buggy commit is that if the journal's starting block is zero, we fail to truncate the journal when we unmount the file system. This can happen if we mount and then unmount the file system fairly quickly, before the log has a chance to wrap. After the first time this has happened, it's not a disaster, since when we replay the journal, we'll just replay some extra transactions. But if this happens twice, the oldest valid transaction will still not have gotten updated, but some of the newer transactions from the last mount session will have gotten written by the very latest transacitons, and when we then try to do the extra transaction replays, the metadata blocks can end up getting very scrambled indeed.

*Sigh*. My apologies for not catching this when I reviewed this patch. I believe the following patch should fix the bug; once it's reviewed by other ext4 developers, I'll push this to Linus ASAP.

- Ted

Тут же, Ted:

Well, the problem won't show up if the journal has wrapped. So it will only show up if the system has been rebooted twice in fairly quick succession. A full conventional distro install probably wouldn't have triggered a bug... although someone who habitually reboots their laptop instead of using suspend/resume or hiberbate, or someone who is trying to bisect the kernel looking for some other bug could easily trip over this --- which I guess is how you got hit by it.

 , , ,

ArtKun
()

Файловые системы с быстрым удалением

Форум — Talks

Есть такие ФС, у которых удаление папки по времени не зависит от количества файлов внутри? Тоесть алгоритм удаления амортизирован будущей работой ФС или просто структуры данных это поддерживают.

vertexua
()

это ад (помогите разобрать)

Форум — Development
$_=<<'';y;\r\n;;d;$_=pack'b*',$_;$_=eval;$@&&die$@;$_

Это НЕ однострочник знаменитый, но это что-то делает. Вопрос - что? :)

 

tazhate
()

ФС для SSD

Форум — General

Добрый день.
Есть домашний сервер на Asus EeePC 900.
На корне у меня стоит ext2 (без журнала и в режиме read_only), а вот на /home и /var подумываю поставить либо LogFS, либо новую самсунговскую f2fs, вот только ко второй фиг утилиты есть и поддержка в ядре (Debian Testing).
Что посоветуете из ФС, пригодных для SSD? И пригодна ли LogFS для подобного?

 , , logfs,

soko1
()