3.1 KiB
LuaJIT Integration für auto-boot-ollama-host
Übersicht
Dieses Projekt wurde erfolgreich konvertiert, um LuaJIT anstelle von Standard-Lua zu verwenden, was eine erhebliche Performance-Verbesserung bietet.
Performance-Verbesserung
Basierend auf unseren Benchmarks zeigt LuaJIT eine 35x schnellere Performance im Vergleich zu Lua 5.4:
- Lua 5.4: 23.8 Millionen Operationen/Sekunde
- LuaJIT: 850.8 Millionen Operationen/Sekunde
Konfiguration
Umgebungsvariablen
USE_LUAJIT=true(Standard): Verwendet LuaJIT für bessere PerformanceUSE_LUAJIT=false: Verwendet Standard Lua 5.4 (Fallback)
Docker Compose
environment:
USE_LUAJIT: "true" # Standard: LuaJIT verwenden
Technische Details
Fallback-System
Das System implementiert ein intelligentes Fallback-System:
- LuaJIT mit vollständiger Funktionalität: Wenn alle Module verfügbar sind
- LuaJIT mit Fallback: Wenn das socket-Modul nicht verfügbar ist, werden externe Tools (netcat, wakeonlan) verwendet
- Lua 5.4: Als letzter Fallback für maximale Kompatibilität
Code-Architektur
Der Socket-Fallback-Code wurde in das network.lua-Modul integriert, um eine bessere semantische Gruppierung zu erreichen:
- Zentralisierte Netzwerk-Verwaltung: Alle Netzwerk- und Socket-Operationen sind in
network.luazusammengefasst - Einheitliche API: Konsistente Funktionen für alle Module (
is_socket_available(),is_sleep_available(),get_socket()) - Wartbarkeit: Änderungen am Fallback-System müssen nur an einer Stelle vorgenommen werden
- Semantische Kohärenz: Socket-Operationen sind logisch bei den Netzwerk-Utilities angesiedelt
Socket-Modul-Kompatibilität
Da LuaJIT nicht direkt mit lua5.4-socket kompatibel ist, wurde ein Fallback-System implementiert:
- Port-Checking: Verwendet
netcatanstelle von luasocket - Wake-on-LAN: Verwendet
wakeonlanTool anstelle von nativen Socket-Operationen - Sleep-Operationen: Verwendet
os.execute("sleep")anstelle vonsocket.sleep()
Verwendung
Standard (LuaJIT)
docker-compose up
Mit Standard Lua 5.4
USE_LUAJIT=false docker-compose up
Direkte Docker-Nutzung
# LuaJIT (Standard)
docker run auto-boot-ollama-host-luajit
# Standard Lua 5.4
docker run -e USE_LUAJIT=false auto-boot-ollama-host-luajit
Vorteile
- Bessere Performance: 35x schnellere Ausführung
- Rückwärtskompatibilität: Funktioniert mit beiden Lua-Versionen
- Intelligentes Fallback: Automatische Erkennung und Anpassung
- Einfache Konfiguration: Einfache Umgebungsvariable zum Umschalten
Kompatibilität
- ✅ Alpine Linux 3.20
- ✅ Docker
- ✅ Docker Compose
- ✅ LuaJIT 2.1
- ✅ Lua 5.4 (Fallback)
- ✅ Alle ursprünglichen Funktionen
Troubleshooting
Socket-Modul-Fehler
Wenn Sie Fehler mit dem socket-Modul sehen, ist das normal bei LuaJIT. Das System verwendet automatisch Fallback-Methoden.
Performance-Probleme
Stellen Sie sicher, dass USE_LUAJIT=true gesetzt ist (Standard).
Kompatibilitätsprobleme
Falls Probleme auftreten, können Sie mit USE_LUAJIT=false auf Standard Lua 5.4 zurückwechseln.