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

  • Через средство управления пакетами ОС (Ubuntu: apt-get, CentOS: yum, Gentoo: emerge). Пакет чаще всего имеет не последнюю версия приложения/компилятора (ruby, phantomjs), но она почти гарантированно stable и легко ставится.
Для установки приложений в среде операционной системы GNU/Linux лучше всего пользоваться средствами управления пакетами вашего дистрибутива.


Читать дальше

SQL и базы данных: основы (индексы, ключи, нормализация), примеры SQL запросов, работа с таблицами CREATE, DROP, EDIT; использование SELECT (join, distinct, enlosed, like, sum, etc); балансировка/масштабирование (шардирование, репликация), TMDB (time series database)

  • http://sqlfiddle.com/ – очень удобный сайт по экспериментам с SQL (запросы, создание страниц и проч.)
  • https://dbfiddle.uk/Gx3c6fmQ – аналогично, с примером
основные инструменты SQL/NoSQL; big data; analytics
    • хранение
      • mysql/oracle/postres (более в почете сейчас последний, в том числе для bigdata в виде greenplum и TSDB в виде TimescaleDB)
      • OpenTSDB (Time Series Database)
      • redis
      • s3
      • elk – часто используется для логов
      • clickhouse
      • log stash
    • визуализация
      • Kibana
    • поиск по данным
      • ElasticSearch
Отдельные статьи
Time series database

В основном на основе статьи из habr

A time series database (TSDB) is a software system that is optimized for storing and serving time series through associated pairs of time(s) and value(s).


Читать дальше

cd, pushd, podd

  • Используйте cd, если вам нужно просто перейти в папку и вы не планируете возвращаться назад в ближайшее время. Это стандарт для обычной навигации.
  • Используйте pushd, если вы работаете в одной папке, но вам нужно перейти в другую (например, чтобы что-то скопировать или скомпилировать) и быстро вернуться обратно.


Читать дальше

Linux: информация о системе (system info, uptime, dmidecode)

uptime – маленькая утилита. Показывает Uptime, количество юзеров, load average (1, 5, 15 min).

~$ uptime
 16:18:52 up 14 days, 16:17, 1 user, load average: 0.00, 0.01, 0.05

>> load average 20 bad or good
A load average of 20 is bad if your system has fewer than 20 CPU cores, as it indicates that tasks are waiting for CPU time and the system is likely overloaded.


Читать дальше

Linux: top

Командный режим
top -icbn1
 
Интерактивный режим

Заходим в top, нажимаем

“1” – показывает загрузку по ядрам.

“s” – изменяем интервал обновления/сбора статистики (напр.  уменьшаем c 3 секунд до 0.1).

“M” – сортировка процессов по утилизации RAM

“P” – сортировка процессов по утилизации CPU (processor)

“k” – возможность отправить KILL PID (kill -15 / SIGTERM) находясь в TOP

“t” – показываем в виде статус бара

%Cpu0 : 6.2/12.5 19[||||||||||||||||||| ]
%Cpu1 : 11.8/11.8 24[|||||||||||||||||||||||| ]
%Cpu2 : 13.3/20.0 33[||||||||||||||||||||||||||||||||| ]
%Cpu3 : 25.0/18.8 44[|||||||||||||||||||||||||||||||||||||||||||| ]
 
Поэкранный вывод

top –b – вывод каждые три секунды всего top’a.

Читать дальше

WordPress разные хинты

Разное
  • Usage статистика WordPress по  используемым версиях WordPress, PHP, Mysql, locale, etc
  • Для проигрывания GIF нужно выбирать full size при insert картинки в пост, иначе она будет статичной
  • Чтобы постить source-code почти без изменений (скобки пришлось подменять все равно) нужно использовать плагин SyntaxHighlighter.


Читать дальше

Linux: permissions/права/sudo & user/group management

  • POSIX based file permissions пришли еще с UNIX (поэтому актуальны и для MacOS), они определили формат назначания прав read/write/execute для user/group/others; подробнее ниже
  • ACL based file permissions позволяют назначать разные права для разных пользователей и групп, в отличии от классического POSIX подхода; подробнее ниже
  • Удобный калькулятор разрешений в десятичом виде в зависимости от типа прав (r/w/e) и scope (u/g/o)

  • Грамотные админы в повседневной работе не работают из под root, а заходят в эту учетку только если нужно что-то сделать – защита от случайных поломок, безопасность (как минимум пароль нужно ввести для входа под root)
  • Изначально ownership придуман чтобы собственник даже в случае некорректной установки прав не потерял доступ

 

sudo/su
su – тоже самое что su root.


Читать дальше

Linux: ядро (kernel), процессы /proc в ОС и работа с ними (proc, ps, lsof, nice, kill, killall, top, lscpu, interrupts, smp irq affinity, isolcpus, taskset, cpuset/cset shield), утилизация процессора (user/system/idle/iowait/softirq)

  • kernel parameters /proc/cmdline (можно редактировать конфигом GRUB)
  • kernel parameters modification /etc/sysctl.conf
  • В Linux все рассматривается как файлы, включая устройства (/dev) и процессы (/proc)
  • Любые изменения в /proc директории немедленно применяются kernel
All changes to files in /proc/ are immediately recognized by the kernel.


Читать дальше

Основы VCS на примере Git, patch/diff

  • https://git-scm.com/ – тут крутые entry видео, документация и прочее
  • с помощью ChatGPT Deep Research можно изучить любой GitHub проект

 

patch/diff
  • Утилита patch позволяет создать код на основе diff одной версии кода от другой
  • До сих пор на kernel.org есть возможность обновить одну версию ядра на другую используя diff между последовательными версиями через утилиту patch, это позволяет не выкачивать весь код, а скачать diff и применить его через patch
  • В целом patch/diff старый допотопный способ vcs (один разраб отправлял diff другому и тот через patch мог получить версию кода разраба), сейчас при разработке ядра linux не используется в пользу git, но при этом патчи до сих пор используются, например
    • для поддержки драйвера RAID в каком то ядре поставщик может предоставлять софт в виде патча для определенной версии ядра
    • для задач безопасности, например, grsecurity, выпускающий ранее бесплатно (теперь платно) патчи безопасности для ядра и доп.


Читать дальше

Network/Linux: Shaping, Policing, Impairment, Traffic Control. Ограничение полосы пропускания (Linux: tc, wondershaper; Network: Cisco, Mellanox), внесение задержек и потерь в сетевой трафик

Влияние потери и задержек на Throughput подробно описано в отдельной статье.

Пример кейсов использования impairment:

    • эмуляция гео-распределенной сети
    • эмуляция wireless/satellite/mobile
    • приближение к real world
    • тестирование edge case сценариев

При этом в сетевом тестировании с impairment нужно обращаться “аккуратно”.

EANTC Carsten Rossenhoevel
The benchmarking methodology could be complemented with synthetic loss/delay, but this is out of scope of this draft ((netsecopen)). 


Читать дальше