среда, 27 августа 2025 г.

Контакты бывают разные

 Когда собирал эталоны сопротивлений в качестве контактов использовал колодку PLS2-40 (на фотографии ниже это крайний справа) и столкнулся со значительным превышением измеренного сопротивления от ожидаемого для номинала 0,1 Ом. В этом номинале было включено параллельно 10 сопротивлений по 1 Ом с допуском 0,1% что должно давать 0,1 Ом с допуском 0,1%. Но при измерениях получалось около 0,12 Ом что на 20% больше.

Измерил сами контакты и получилось что каждый контакт имеет сопротивление больше 20 мОм (миллиом) что составляет минимум 20% от номинала эталона. Чтобы понять насколько это "норма", измерил сопротивление контактов PLS-40 (крайний слева) и PLS-40R (средний)

Сопротивление контактов измерял с помощью Yaorea YR1035+. Этот прибор измеряет с помощью переменного тока, но для короткого прямого контакта это не вносит погрешность.

воскресенье, 24 августа 2025 г.

Система тормозит на SSD

Какое-то время назад заметил что домашний ноутбук тормозит когда ставятся обновления системы и при этом постоянно горит индикатор активности диска (индикатор продолжает непрырывно светиться даже в меню Grub).

В выводе iostat видна максимальная утилизация диска при небольшом количестве операций ввода-вывода

$ iostat -x sda
Linux 6.1.0-38-amd64 (dragoncore)       22/08/25        _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,50    0,25   40,85   38,35    0,00   20,05

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
sda              1,00      0,50     0,00   0,00  251,00     0,50   40,00    459,00    20,00  33,33  146,22    11,47    0,00      0,00     0,00   0,00    0,00     0,00    7,00  133,29    7,03 105,20

В ноутбуке установлен SSD накопитель LITEON CV3-8D256-11 SATA 256GB формата M.2.

Посмотрел в атрибуты S.M.A.R.T.

$ sudo smartctl -A /dev/sda
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-38-amd64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0003   100   100   000    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0002   100   100   000    Old_age   Always       -       5763
 12 Power_Cycle_Count       0x0003   100   100   000    Pre-fail  Always       -       3819
175 Program_Fail_Count_Chip 0x0003   100   100   000    Pre-fail  Always       -       0
176 Erase_Fail_Count_Chip   0x0003   100   100   000    Pre-fail  Always       -       0
177 Wear_Leveling_Count     0x0003   100   100   000    Pre-fail  Always       -       768
178 Used_Rsvd_Blk_Cnt_Chip  0x0003   100   100   000    Pre-fail  Always       -       0
179 Used_Rsvd_Blk_Cnt_Tot   0x0003   100   100   000    Pre-fail  Always       -       0
180 Unused_Rsvd_Blk_Cnt_Tot 0x0033   100   100   005    Pre-fail  Always       -       1248
181 Program_Fail_Cnt_Total  0x0003   100   100   000    Pre-fail  Always       -       0
182 Erase_Fail_Count_Total  0x0003   100   100   000    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0003   100   100   000    Pre-fail  Always       -       0
194 Temperature_Celsius     0x0003   100   100   000    Pre-fail  Always       -       79
195 Hardware_ECC_Recovered  0x0003   100   100   000    Pre-fail  Always       -       0
199 UDMA_CRC_Error_Count    0x0003   100   100   000    Pre-fail  Always       -       1
238 Unknown_Attribute       0x0003   061   100   000    Pre-fail  Always       -       39
241 Total_LBAs_Written      0x0003   100   100   000    Pre-fail  Always       -       30759792686
242 Total_LBAs_Read         0x0003   100   100   000    Pre-fail  Always       -       48997828952

суббота, 23 августа 2025 г.

Экранированный кабель для четырёхпроводного измерения сопротивления

Когда я проверял точность мультиметров самодельными эталонами сопротивлений, то не смог измерить номинал 10 МОм настольным мультиметром Agilent U3402A из-за постоянно меняющихся значений в последних трёх знаках. Я пробовал оба кабеля для четырёхпроводного измерения, которые есть в моей домашней мастерской, но ни один не дал полностью устоявшихся показаний. А стоило начать немного шевелиться как уже менялись четыре, а иногда и все пять, последних знаков.

Инструкция на мультиметр рекомендует проводить измерения сопротивлений выше 100 кОм с помощью экранированного кабеля, но судя по всему оба эти кабеля были без внутреннего экрана.

Спортивный интереса ради заказал 4 метра экранированного кабеля RG178, зажимы кельвина и 4 приборных разъёма 4 мм были в наличии.

Со второй попытки получился кабель (в первый раз оторвались центральные жилы кабеля от разъёмов когда одевал комплектный держатель разъёма)

Внутри зажимов кельвина центральная жила зафиксирована термоклеем и сверху одета термоусадка. Со стороны приборных разъёмов от обрыва центральной жилы защищает два слоя термоусадки, но это слабое место кабеля.

четверг, 21 августа 2025 г.

Не проходят пробы после включения Istio Ambient

 Возился с переносом наработок по Istio Ambient из GKE (Google Kubernetes Engine) в EKS (Elastic Kubernetes Service) и столкнулся с "отваливающимися" проверками готовности подов в Knative сервисах после включения пространства имён в ambient mesh.

Новый под стартует, но через 30 секунд у него отваливается readiness check без каких либо сообщений в логе пода. Проверил логи ztunnel, но ничего интересного не увидел. Для верности почитал Platform-Specific Prerequisites для EKS но описанный там случай не подходил для моего кластера.

Попробовал искать в сообщениях об ошибках в Istio, но ничего подходящего не нашлось. Потом вспомнил про kubernetes network policy которая есть в этом неймспейсе и после её удаления проверки стали проходить нормально.

Стал искать целенаправленно и натнулся на раздел Ambient, health probes, and Kubernetes NetworkPolicy в документации Istio Ambient и стало ясно чего не хватает.

вторник, 19 августа 2025 г.

Пропадают чаты и каналы в Teams

 Сегодня заметил что в настольной версии Teams (версия 25185.410.3812.8024) стал пропадать список чатов и каналов на вкладке "Chat".


 Есть только "Recent", но отсутствуют "Chats" и "Teams and Channels". В браузерной версии это выглядит так


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

понедельник, 18 августа 2025 г.

Ошибки при установке Istio в GKE

 Если вы ставите Istio в ambient режиме в GKE (Google Kubernetes Engine) кластер и не прочли Platform-Specific Prerequisites, то при установке CNI node agent вы столкнётесь с двумя ошибками.

Первая не даст установить Helm релиз (в событиях будет ошибка):

LAST SEEN   TYPE      REASON                    OBJECT                           MESSAGE
3s          Warning   FailedCreate              daemonset/istio-cni-node         Error creating: insufficient quota to match these scopes: [{PriorityClass In [system-node-critical system-cluster-critical]}]

Это связано с тем что по-умолчанию разрешает использовать priorityClassName: system-node-critical только в пространстве имён "kube-system". Чтобы разрешить использовать его в "istio-system" нужно создать ResourceQuota в соответствующем пространстве имён

apiVersion: v1
kind: ResourceQuota
metadata:
  name: gcp-critical-pods
  namespace: istio-system
spec:
  hard:
    pods: 1000
  scopeSelector:
    matchExpressions:
    - operator: In
      scopeName: PriorityClass
      values:
      - system-node-critical

Вторая проблема проявляется как постоянный перезапуск пода istio-cni и в логах будет подсказка как это чинить:

2025-08-15T14:03:48.272826Z     info    controllers     starting        controller=repair pods
2025-08-15T14:03:48.357825Z     info    cni-agent       initialization complete, watching node CNI dir
2025-08-15T14:03:48.358220Z     error   cni-agent       failed file copy of /opt/cni/bin/istio-cni to /host/opt/cni/bin: open /host/opt/cni/bin/istio-cni.tmp.2135482355: read-only file system
2025-08-15T14:03:48.358243Z     warn    hint: some Kubernetes environments require customization of the CNI directory. Ensure you properly set global.platform=<name> during installation
2025-08-15T14:03:48.358311Z     error   cni-agent       installer failed: copy binaries: open /host/opt/cni/bin/istio-cni.tmp.2135482355: read-only file system
2025-08-15T14:03:48.369141Z     info    cni-agent       terminating, but parent DS istio-cni-node is still present, this is an upgrade, leaving plugin in place
2025-08-15T14:03:48.369180Z     info    cni-agent       Ambient node agent shutting down - is upgrade shutdown? true

Для исправления достаточно задать --set global.platform=gke при установке Helm релиза.

воскресенье, 17 августа 2025 г.

Проверка измерений сопротивления в домашних условиях

 Это продолжение точные резисторы для калибровки и неожиданная цена за простую плату - собрал набор сопротивлений (0,1 Ом, 1 Ом, 10 Ом, 100 Ом, 1 кОм, 10 кОм, 100 кОм, 1 МОм, 10 МОм) которыми можно проверить точность показаний сопротивления у измерительных приборов в домашних условиях.

Использованы тонкоплёночные SMD сопротивления от Yageo с точностью 0,1% и ТКС ±25ppm.  Для всех номиналов кроме 1 МОм и 10 МОм итоговая мощность 1,25 Вт.

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

В качестве эталонного измерительного прибора выступил настольный мультиметр Agilent U3402A с использованием четырёхпроводной схемы измерений. В этом режиме его точность измерения сопротивления выше любого другого из моих приборов, но при измерении сопротивлений выше 100 кОм рекомендованы экранированные провода которых у меня нет.