TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #32 · 7 фев.

Скорее всего уже слышали, что складывать строки через + это плохая практика. Падение производительности, и всё такое. Без лишних слов, давайте измерять: from timeit import timeit def t1(): # складываем 10 строк через + из переменной t = 'text' for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t2(): # склеиваем список строк через метод join arr = ['text'] * 10 for _ in range(1000): s = ''.join(arr) def t3(): # складываем через + но не из переменной а непосредственно инлайн объекты for _ in range(1000): s = 'text' + 'text' + 'text' + ... # всего 10 раз Теперь каждую строку склейки запустим по 10М раз >>> timeit(t1, number=10000) 0.21951690399964718 >>> timeit(t2, number=10000) 1.4978306379998685 >>> timeit(t3, number=10000) 0.2213820789993406 Хм, а нам говорили что через "+" это плохо и медленно ))) 😁 Тут стоит учитывать, что речь идёт о склейке множества длинных строк. Давайте изменим условия: def t4(): t = 'text'*100 for _ in range(1000): s = t + t + t + t + t + t + t + t + t def t5(): arr = ['text'*100] * 10 for _ in range(1000): s = ''.join(arr) def t6(): for _ in range(1000): s = 'text'*100 + 'text'*100 + ... # всего 10 раз >>> timeit(t4, number=10000) 12.795130728000004 >>> timeit(t5, number=10000) 2.642637542999182 >>> timeit(t6, number=10000) 0.2184546610005782 Вот, уже другой разговор, сразу видна разница, в среднем в 6 раз. Но погодите, почему последний тест t6() по скорости такой же как и t3()? Ведь строки теперь в 100 раз длиннее! Это вопросы оптимизации кода, какие простые изменения ускоряют или замедляют выполнение программы. Мы столкнулись с примером обхода обращения к переменной. Например, именно так работает директива #define в С++, во время компиляции подставляя значение переменной вместо ссылки на неё. В Python это тоже работает, но часто ли вы сможете встретить такой способ работы со строками? К сожалению, способ почти только теоретический. В целом, тесты показали то, что мы хотели. Делаем выводы самостоятельно. Полный листинг 🌍 #tricks

Резултати

Пронајдени 3 слични објави

Пребарај: #proxmox

当前筛选 #proxmox清除筛选
infosecurity

@tg_infosec · Post #2941 · 16.02.2025 г., 12:33

👨‍💻 Доступная виртуализация: Proxmox. • Когда потребности перерастают один, ответственный за все, железный сервер, но еще не настолько велики, чтобы использовать Kubernetes, на помощь приходят разные решения, позволяющие управлять кластером из нескольких хостов, организовать High Availability, репликацию и централизованный бэкап контейнеров и виртуалок. Proxmox — одно из них: • Разворачиваем Linstor хранилище ч.1; • Разворачиваем Linstor хранилище ч.2; • Разворачиваем Linstor хранилище ч.3; • Proxmox VE - обновляем 6ку на 7ку (Proxmox 6 to 7 upgrade); • Proxmox: бекапы и факапы (и ресторы); • Proxmox + NFS сервер - внешнее хранилище для iso и дисков; • Proxmox API - автоматизируем рутинную операцию; • Proxmox + Kerio Control - удобные песочницы; • Proxmox + Kerio Control - удобные песочницы; • Вводная; • Урок 1 - вебинар, инсталляция; • Урок 2.1 - Обновления; • Урок 2.2 - Контейнеры; • Урок 2.3 - Виртуальные машины; • Урок 2.4 - Настройки в машинах и контейнерах; • Урок 2.5 - Снапшоты; • Урок 2.6 - Бекапы; • Урок 2.7 - Пользователи и права; • Урок 2.8 - Сети; • Урок 2.9 - Внешнее хранилище; • Урок 2.10 - SSL сертификаты; • Урок 3.1 - Кластер: вводная; • Урок 3.1.2 - Кластер: подготовка нод; • Урок 3.2.1 - Кластер: добавление нод; • Урок 3.2.2 - Кластер: безопасность нод; • Урок 3.3 - Кластер: реплики нод; • Урок 3.4 - Кластер: HA; • Урок 4.1 - time drift; • Урок 4.2 - LB Proxy; • Урок 4.3 - LVM; • Урок 4.4 - Кеш; • Бекапим в облака. #Proxmox

Hashtags

DOFH - DevOps from hell

@dofh_ru · Post #3270 · 08.02.2024 г., 06:14

​​До появления Proxmox Backup Server я часто отдавал предпочтение при выборе гипервизора Hyper-V из-за того, что для Proxmox VE не было функционального инструмента для бэкапов VM, кроме его встроенного средства, которое делало только полные бэкапы. С выходом PBS этот вопрос был закрыт, причём бескомпромиссно. Предложенное решение было лучше, чем любое другое бесплатное. Так что связка Proxmox VE + PBS аналогов сейчас не имеет по удобству, простоте настройки и эксплуатации. Отдельно отметить и рассказать более подробно я хочу про Proxmox Backup Client. Это консольная утилита для Linux, которая позволяет делать бэкап на уровне файлов из виртуальной машины в PBS, даже если система находится на другом гипервизоре. То есть это полностью отвязанный от инфраструктуры Proxmox клиент, который позволяет складывать резервные копии в PBS. Таким образом этот сервер бэкапов может объединять в себе разнородную инфраструктуру. Сразу перечислю основные ограничения этого клиента: ▪ бэкап только на уровне файлов или образов дисков, не системы целиком; ▪ официальная поддержка только deb дистрибутивов, для rpm люди сами собирают пакеты, так как исходники открыты; ▪ нет поддержки windows, вариант бэкапа данных оттуда только один - монтирование диска по smb к linux машине и бэкап этого примонтированного диска. Использовать proxmox-backup-client очень просто. Я не буду подробно описывать его возможности, так как в оригинальной документации представлена исчерпывающая информация. Если хочется на русском, то можно обратиться к документации от altlinux. Кратко покажу пример установки и бэкапа. Ставим Proxmox Backup Client на Debian: # wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg # mcedit /etc/apt/sources.list.d/pbs-client.list Вставляем туда для Debian 12 deb http://download.proxmox.com/debian/pbs-client bookworm main Для Debian 11: deb http://download.proxmox.com/debian/pbs-client bullseye main Для Debian 10: deb http://download.proxmox.com/debian/pbs-client buster main Ставим клиента: # apt update && apt install proxmox-backup-client Теперь бэкапим корень сервера без примонтированных дисков. То есть делаем бэкап системы: # proxmox-backup-client backup root.pxar:/ --repository 10.20.1.47:main Здесь мы указали: ◽root.pxar - имя архива в формате pbs ◽/ - бэкапим корень системы ◽10.20.1.47 - адрес pbs сервера ◽main - имя datastore По умолчанию используется учётная запись root@pam, то есть дефолтный админ. Разумеется, на проде так делать не надо, потому что у него полные права, в том числе на удаление архивов. Делайте отдельные учётки для разных систем с ограниченными правами. В PBS это организовано удобно и просто, так что разобраться не трудно. Для указания имени пользователя, нужно использовать такой вид репозитория: user01@[email protected]. То есть мы указали созданного вручную пользователя user01@pbs. Для того, чтобы не вводить пароль пользователя вручную, можно задать его через переменную окружения PBS_PASSWORD. Смотреть содержимое бэкапов можно как через веб интерфейс, так и тут локально. Причём бэкап можно примонтировать через fuse. Сморим снэпшоты и выбираем любой для монтирования: # proxmox-backup-client snapshot list --repository 10.20.1.47:main # proxmox-backup-client mount host/debian12-vm/2024-02-06T19:19:12Z root.pxar --repository 10.20.1.47:main /mnt/backup Очень быстро и удобно. При желании бэкапы можно шифровать. #proxmox#backup

DOFH - DevOps from hell

@dofh_ru · Post #3851 · 03.09.2025 г., 12:20

Proxmox: привязка CPU к виртуальным машинам Не всегда очевидно, зачем вообще нужна привязка CPU к виртуальным машинам, особенно если речь идёт о небольших развертываниях - там этот параметр чаще всего просто игнорируют. Но в реальном продакшене использование CPU affinity становится действительно важным для повышения производительности виртуалок. https://telegra.ph/Proxmox-privyazka-CPU-k-virtualnym-mashinam-09-03 #ит_статьи#devops#proxmox#linux#numa