Taki kłopot, mam Home Assistant na HP t630 z proxmoxem.
Proxmox 8.3.2 świeżo uaktualniony.
HA Core 2024.12.5 na HOS 13.2
ESPHome 2024.12.2
Wszystko działało do tej pory bez zarzuty. Kłopot się pojawił, gdy zacząłem robić sobie próby z panelem LCD na ESP32S3. Plik configuracyjny yaml - ok. 1500 wierszy. Próba instalacji poprzez panel ESPHome w HA - kończy się zatrzymaniem maszyny HOS w proxmox. Można ją potem po prostu uruchomić i działa. Konfiguracja poniżej.
Nie jest to jakiś duży kłopot, bo ze względu na szybkość i tak piszę, kompiluje i instaluje wykorzystując VSC na moim MacBooku. Jednak, po zakończeniu testów chciałem końcowy plik yaml mieć na serwerze HA aby robić normalne update. Może dodam, że problem istniał również na poprzednich wersjach HA i ESPHome.
Typowy objaw braku RAMu - ile masz fizycznie RAMu na hoście proxmoxa? Możesz przydzielić więcej niż te 6GB?
w YAMLu urządzenia możesz przetestować takie ustawienie
[…]
esphome:
[…]
compile_process_limit: 1
[…]
tą jedynkę - ilość równoległych procesów możesz zmieniać wg liczby dostępnych rdzeni (jeśli się okaże, że pomaga to zwiększ o 1 i przetestuj, bo kompilacja w jednym procesie strasznie się ślimaczy, przy 4 będziesz miał efekt taki sam jak masz bez tego ustawienia).
Jest jeszcze jedna potencjalna przyczyna brak miejsca na dysku na pliki tymczasowe.
OK, wieczorem to przetestuje.
Co do długości pliku do kompilacji to problem jest jeszcze inny. Poznaje ESPHome przez “rozpoznanie bojem” , nie znalazłem w necie jakiegoś wprowadzenia do tej platformy. Nie bardzo czuje “politykę” pisania plików konfiguracyjnych. Niby wszystko działa, ale myślę, że to co pisze to chaos.
Dam znać, co pomaga a co nie.
Nie mogę zwiększyć pamięci RAM powyżej 6GB, zapewne Proxmox też musi z czegoś korzystać, Przy próbie zwiększenia dostaje komunikat:
kvm: cannot set up guest memory ‘pc.ram’: Cannot allocate memory
TASK ERROR: start failed: QEMU exited with code 1
Zmniejszenie liczby procesów dostępnych przy kompilacji, nie pomaga.
Przyjmuje więc, że mam za mało pamięci i na razie nic z tym nie zrobię, bo nie znalazłem w szufladach i szafkach pasujących do HP modułów.
Skupiam się raczej na nauce ESPHome, bo to ciekawa platforma.
Dzięki.
Pytałem ile masz fizycznie, zgaduję że 8GB co nie jest szałem jak na wirtualizację…
Natomiast powinieneś jeszcze sprawdzić jak tam przydział dysku.
np. z poziomu HAOS df -h
a nawet można ocenić po pałce w
Ustawienia → System → Pamięć masowa
no cóż nie wiem, znajomy ma taką biedniutką instalację na malinie z 2GB RAMu (oczywiście HAOS bare-metal, a nie żadna wirtualizacja), i tam wystarcza limitowanie procesów do 2 przy kompilacji tak skomplikowanych komponentów jak bluetooth
Wrzuć tego YAMLa w całości gdzieś (może być załącznik zip, szczególnie jeśli ma jakieś include’y), to przetestuję czy skompiluje się u mnie.
Reboot (inaczej restart = power off i automatyczny power on) czego? Chyba nie Proxmoxa bo to niepotrzebne a wirtualnej maszyny nie można zrestartować jeżeli jest wyłączona.
@macek - To bez różnicy, próbowałem wszystkiego wraz z restartem proxmoxa (choć mi też wydawało się to bez znaczenia). Teraz przyszło mi do głowy, że nie wiem ile pamięci mam na płycie.
Za to w Proxmox widzę to co poniżej, więc ja po prostu nie mam 8GB RAM
Masz 8GB (no wiadomo cześć jest zjedzona przez zintegrowaną grafikę - wizyta w BIOSie i zabierz karcie graficznej wszystko co jest ponad minimum)
ALE no hmm nie ma z czego rozdawać, proxmox na swoje potrzeby - żre jakieś 2GB
a inne maszyny wirtualne? przecież tego w ogóle nie uwzględniasz w tym co napisałeś wyżej - zatrzymaj wszystkie inne VM (oprócz HAOS) i kontenery (jeśli używasz jakieś oprócz VM).
Jakkolwiek kompilacja tego wsadu zajmuje u mnie 2GB RAMu więc minimalnie tyle musisz mieć wolnego RAMu w HAOS oraz swap powinien nie być wykorzystywany jeśli jesteś blisko tej ilości.
To w sumie nie jest konieczne - szukaj co zżera Ci RAM w HA/HAOS, bo to nie jest normalna sytuacja gdy jest zajęte ponad 5GB RAMu (z 6GB dostępnego).
Przy takim wykorzystaniu pamięci masz zapewne już zajęty cały swap.
Korzystasz z tego system-monitor ?
To dla mnie jest totalnie niezrozumiała sytuacja wykorzystania proxmoxa, nie da się na tym sprzęcie zainstalować HAOS-generic? - aha i to nie jest pytanie retoryczne, po prostu nie wiem
(wtedy HAOS dostaje we władanie 100% dostępnego sprzętu, a nie jakiś kawałek dostępny dla VM, szczególnie że to nie jest jakaś maszyna marzeń, tylko starawy thin-client)
edit
teraz sprawdziłem
masz 1GB wolnego ale teoretycznie 2GB do użytku (1GB zostanie zwolnione) i swap masz niewykorzystany w ogóle (co jest jak dla mnie dziwne, bo przy zajętości RAMu w okolicach 70% powinien zacząć być wykorzystywany).
Tylko to była sytuacja z określonego momentu, a tu należy analizować wykresy.
Miałem na tym kompie tylko HAOS - wszystko ładnie działało to pewnej aktualizacji, spowodowało duże kłopoty, pisałem o tym też na tym forum. Proxmox rozwiązuje problem, bo robię backupy całem maszyny wirtualnej i w takich przypadkach po prostu ją odtwarzam. Nie muszę mieć dostępu do komputera. Szybko i sprawnie, to moim zdaniem wartość dodana, która rekompensuje mniejszą wydajność.
W czasie normalnej pracy nie mam takiego zużycia RAM, ale rzeczywiście jak kompiluje to użycie wzrasta do 100%.
Duze zuzycie ramu raportowane przez proxmoxa jest w pelni normalne (kazdy linux wykorzystuje ram do cacheowania czego sie da i proxmox sie w tym lubuje bo zwieksza to responsywnosc vmki i jej opoznienia).
Jaki system plikow masz na proxmoxie? Jesli to ZFS arc cache to sam system plikow zezre niemalo pamieci jesli go nie zlimitujesz, na hoscie z 8GB ram zlimituj do 1GB.
nano /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=1073741824
zapisz i zrestartuj proxmoxa
Tu przyklad hosta z proxmoxa raportujacego zuzycie ram na poziomie ponad 90%
co do Twojego problemu kompilacji to zlimitowanie kompilatora do 1 watku moze nic nie dac jesli kompilator ma duzo modulow do zaladowania do pamieci. Dla testu sprobuj skompilowac mniejszy kawalek kodu, z mniejsza liczba komponentow i sensorow i pomin lambdy ktore zwiekszaja zuzycie pamieci- zapewne sie uda. Jesli kompilacja przejdzie to oznacza ze po prostu masz za malo ramu aby skompilowac swoj firmware.
Kolejne próby, limit pamięci na proxmoxie był ustalony na ok. 700kB.
Mniejsze pliki kompilowały się bez problemu, dopiero przy moim panelu LCD wyszedł kłopot i musiałem się nauczyć jak to robić za pomocą VSC.
Dzisiaj zrobiłem dwa okna i obserwowałem.
Generalnie przy kompilacji zawsze zatrzymuje się w tym miejscu:
Środowisko kompilacji nie ma żadnego znaczenia dla finalnego pliku bin. Od zawsze korzystam z ESPHome jako osobnego kontenera Docker. Tym samym jest AddOn w HA.