- platform: sql
db_url: mysql://homeassistant:homeassistant@core-mariadb/homeassistant?charset=utf8
queries:
- name: 'DataBase rozmiar'
query: 'SELECT table_schema "database", Round(Sum(data_length + index_length) / 1024 / 1024, 1) "value" FROM information_schema.tables WHERE table_schema="homeassistant" GROUP BY table_schema;'
column: 'value'
unit_of_measurement: MB
Wynosi 900MB (nie zapisuje wszystkiego do db tylko to co mnie interesuje), w sumie nie zależy mi np. na historii czujników temperatury, więc nawet jak je stracę to się nic nie stanie - najbardziej zależy mi na panelu energii aby danych nie stracić, a pozostałe czujniki mam i tak w influx, próbował ktoś tego rozwiązania (podobno dobre na Rpi z kartą sd), mam u siebie 8GB ram dostępne HA zużywa:
Więc spokojnie na bazę mogę mu oddać 3GB, chciałbym dowiedzieć się, jak to działa w praktyce jeżeli ktoś używa aby nie tracić niepotrzebnie czasu na zabawy z tym, np. jeżeli są same problemy, a to rozwiązanie ma więcej minusów niż plusów w postaci bardzo szybkiej bazy danych
Wiem, co się dzieje z RAM po zdjęciu zasilania, ale wszystko i tak działa na UPS, szybki SSD i tak zawsze będzie wolniejszy od RAM.
W pracy używam komputerów przemysłowych opartych na słabym Atomie, nie mają one dysków, a karty pamięci więc aby karty pamięci nie umierały od zapisów są w trybie tylko do odczytu, a cały system ładuje się do dysku ram, chodzi to bardzo bardzo płynnie w porównaniu do tego jak chodziło to na karcie pamięci (CFast więc i tak szybkiej karcie). Dlatego, pomysł wrzucenia bazy danych, która nie ukrywajmy jak ucieknie nic się nie stanie, a może mocno poprawić wydajność, często aplikacja na telefonie czy strona w przeglądarce ładuje się ok 30s - a problem jest z odczytem danych, bo obciążenie procesora jest na poziomie 27-30%, wszystko pracuje na dysku ssd wprawdzie msata, ale nie mam złącza m.2 aby wymienić go, natomiast nie chce spędzać nie wiadomo ile czasu na testy żeby to sprawdzić, a potem finalnie jeszcze okaże się, że to nie daje spodziewanego efektu, stąd pytam.
Linkowane rozwiązania bazują na pomyśle używania cyklicznego synchronizowania danych w ram-disk z dyskiem twardym. Więc ewentualnej utracie ryzykujemy dane tylko z cyklu tej synchronizacji.
Kwestią osobistą jest potrzeba częstego przeglądania danych w HA. Jak dla mnie DB w ram-disk może być raczej ciekawym eksperymentem niż potrzebą w codziennym użytkowaniu HA.
W moim przypadku coś jest nie tak z tą bazą danych ale nie mogę od dłuższego czasu dojść co. Jak mam bazę za ostatnie 3-7 dni to system działa bardzo bardzo szybko, ale jak ustawię purge_keep_days na 30 dni to potrafi się ładować po 10-30s, zależy mi na tym, aby w bazie był ostatni miesiąc dla wyciągania średnich danych z miesiąca. W sumie baza za 30 dni ma ok: ~3,871,273 rekordów i ~880MB, dla 7 dni liczba rekordów jest poniżej miliona.
Nie wiem jaki sposób instalacji HA masz u siebie ale wydaje mi się, że rozwiązaniem na opisywane bolączki jest zewnętrzna baza danych, niezależna od HA. Osobiście mam InfluxdDB w dokerowym kontenerze.
Z rekordera mam wykluczone prawie połowę rzeczy, które są tam niepotrzebne, podobnie z history.
Właśnie czy włączona grafana czy wyłączona (wtedy tylko brak ładowania wykresów) czas ładowania strony podobny - pierwsze wczytanie trwa właśnie do 30s, a potem przełączanie między zakładkami idzie szybko i gładko - testowałem z większą bazą mariadb i mniejszą, wyłączony influx i grafana i różnicy między włączoną grafaną i influx nie było, ale była różnica w zależności od wielkości bazy mariadb, muszę spróbować użyć bazy mariadb zapisanej na innym serwerze, wczytywanej po sieci - chociaż nie wierze w przyspieszenie, oraz przy chwili wolnego czasu tej bazy zapisanej w ram.