- Wat de app verwerkt
- De Nextcloud-server
- Throttling: 429 Too Many Requests
- Waar de gegevens op bestandsniveau worden bewaard
- De PostgreSQL-server
- De Power BI-computer
- De Power BI-service
- Dimensioneer vóór de grote golven
Wat de app verwerkt
Section titled “Wat de app verwerkt”De app bewaart één rij per job en één rij per run, elk met de aantallen van de run (bestanden, versies, volume, problemen), en geen rij per bestand. Een run die een miljoen bestanden heeft verplaatst, is één rij in de Run-geschiedenis, dus het aantal bestanden maakt voor de app geen verschil: 100 miljoen bestanden en meer worden geteld zonder dat de app groeit.
De tabellen worden op de server gefilterd, gesorteerd en gepagineerd, en de cijfers van het Dashboard worden door de database geteld, zodat elk scherm snel blijft, hoe groot de migratie ook wordt. De app is op deze omvang gemeten op een kleine server, met 2 virtuele CPU's en 512 MB voor PHP:
| Wat | Gemeten met |
|---|---|
| Jobs | 25.000, in 100 groepen en met 50 tags |
| Rijen in de Run-geschiedenis | 75.000, en 225.000 voor het PHP-geheugen dat een weergave nodig heeft |
| Bestandsproblemen | 200.000 en meer |
| Bestanden die door de runs zijn geteld | Minstens 100 miljoen; alleen hun aantallen staan in de app |
| Jobs tegelijk actief | 4, het maximum dat de SMART Migration-server uitvoert |
| PHP-geheugen dat een verzoek nodig heeft | Hooguit ongeveer 140 MB, voor het tabblad Jobs; 45 tot 95 MB voor de andere tabbladen. Zie PHP-geheugen per verzoek |
De app verwerkt elk aantal jobs, maar één job mag niet te groot zijn: een bibliotheek van honderdduizenden of miljoenen bestanden wordt per map in jobs opgesplitst; anders is de job traag en wordt hij mogelijk niet voltooid. Zie Bronnen
De Nextcloud-server waarnaar de bestanden worden geschreven, wordt gedimensioneerd voor de bestanden zelf, zoals de volgende sectie uitlegt.
De Nextcloud-server
Section titled “De Nextcloud-server”SMART Migration schrijft elk bestand rechtstreeks in Nextcloud Files via WebDAV, aangemeld met een app-wachtwoord. De app bevat alleen de jobs en hun resultaten, dus de bestanden gaan er nooit doorheen. Elk bestand, en elke versie ervan, is een afzonderlijk verzoek, dus de Nextcloud-server wordt gedimensioneerd voor het aantal bestanden per uur dat vier jobs tegelijk schrijven, niet alleen voor het volume.
| Wat | Waarom het ertoe doet |
|---|---|
| PHP-workers | Elke upload bezet een PHP-worker zolang hij wordt geschreven. Zijn er te weinig, dan komen de verzoeken in een wachtrij: de migratie vertraagt, en de pagina's van Nextcloud ook, voor alle andere gebruikers |
| Redis | Nextcloud vergrendelt elk bestand dat het schrijft. Met Redis voor bestandsvergrendeling en caching blijven de vergrendelingen buiten de database |
| De database | Elk bestand is een rij in de bestandscache van Nextcloud, geschreven zodra het bestand binnenkomt. Een snelle database op SSD houdt veel kleine bestanden bij |
| Opslag | Snelle schijven met ruimte voor de hele migratie, inclusief versies, en quota op de doelaccounts en Team Folders die daar ruimte voor laten |
| Groottelimieten | De limieten van PHP, en die van een eventuele proxy vóór Nextcloud, voor de grootte en duur van een verzoek moeten de grootste bestanden toelaten |
| PHP-geheugen | Houd memory_limit op 512 MB, zoals Nextcloud aanbeveelt. Het grootste verzoek van de app, het tabblad Jobs, heeft daarvan ongeveer 140 MB nodig, en Run-geschiedenis leest zijn runs deel voor deel, zodat de weergaven klein blijven naarmate de geschiedenis groeit. Zie Prestaties en belasting van de Nextcloud-server |
| Werk bij elke upload | Antivirusscans, versleuteling aan serverzijde en regels voor bestandstoegangsbeheer voegen tijd toe aan elk bestand. Test de snelheid met deze functies ingeschakeld, zoals ze tijdens de migratie zullen zijn |
Throttling: 429 Too Many Requests
Section titled “Throttling: 429 Too Many Requests”Nextcloud beperkt niet hoeveel bestanden een aangemeld account schrijft. De brute-force-beveiliging beschermt in plaats daarvan tegen het raden van wachtwoorden. Elke mislukte aanmelding vanaf een adres vertraagt de volgende verzoeken vanaf dat adres, ook de geldige. Na te veel mislukte pogingen weigert Nextcloud ze urenlang met 429 Too Many Requests. Omdat de SMART Migration-server zich vanaf één adres aanmeldt, stopt dit elke job, en toont de app Offline, omdat de server ook de API van de app niet meer kan bereiken.
Een mislukte aanmelding tijdens een migratie betekent meestal een wachtwoord dat niet meer werkt: een app-wachtwoord dat is ingetrokken onder Instellingen → Beveiliging, een gewijzigd wachtwoord van het serviceaccount, of het app-wachtwoord dat de app voor een run in de bestanden van een gebruiker heeft uitgegeven en dat na afloop van de run nog wordt gebruikt. Zo voorkomt u het, en zo heft u het op:
Herstel eerst het wachtwoord
Geef de SMART Migration-server een werkend app-wachtwoord. Zolang de server een wachtwoord blijft sturen dat mislukt, blijft Nextcloud hem afremmen.
Zet het adres van de server op de toestaanlijst
Voeg in Beheerinstellingen → Beveiliging van Nextcloud het adres van de SMART Migration-server toe aan de Brute-force-toestaanlijst en vink Snelheidsbeperking omzeilen voor toegestane IP's aan. Een adres op de lijst kan wachtwoorden proberen zonder te worden afgeremd, dus voeg alleen dat ene vaste adres toe.
Hef de beperking op voor een adres dat al wordt afgeremd
occ security:bruteforce:attempts <address>toont hoe ver het is gevorderd, enocc security:bruteforce:reset <address>heft de beperking direct op.
Achter een proxy delen alle clients één adres
Wanneer Nextcloud achter een reverse proxy staat zonder dat trusted_proxies in de configuratie is ingesteld, ziet Nextcloud elke client met het adres van de proxy. Een verkeerd wachtwoord dat door een willekeurige gebruiker wordt ingetypt, remt dan iedereen af, ook de SMART Migration-server. Stel trusted_proxies in, zodat Nextcloud het eigen adres van elke client ziet.
Een 429 kan ook afkomstig zijn van iets vóór Nextcloud: een reverse proxy, een firewall of de beveiliging van een hostingprovider die het aantal verzoeken per adres beperkt. Laat het adres van de SMART Migration-server daar ook door. Een 503 Service Unavailable betekent dat Nextcloud overbelast is of in onderhoudsmodus staat. Zie Wat een migratie inhoudt en wat de snelheid bepaalt
Waar de gegevens op bestandsniveau worden bewaard
Section titled “Waar de gegevens op bestandsniveau worden bewaard”Elk bestand dat een Discovery- of migratierun verwerkt, wordt vastgelegd in de PostgreSQL-rapportagedatabase: waar het staat, de grootte, versies, datums, labels, metadata en wat ermee is gebeurd. Dat zijn de gegevens die SMART BI.pbix leest, en de gegevens die met de migratie meegroeien.
Ze groeien met elke run, niet alleen met elk bestand
Een bestand dat is ontdekt en daarna in een test en nog eens echt is gemigreerd, wordt door elk van die runs vastgelegd. Terugkerende inhaalruns voegen er ook aan toe. Plan de rapportagedatabase voor de runs die het project zal uitvoeren, niet alleen voor de bestanden in de bron.
De PostgreSQL-server
Section titled “De PostgreSQL-server”Bij tientallen miljoenen bestanden is de rapportagedatabase een eigen server, geen hoekje van de SMART Migration-server. Elke run schrijft ernaar zolang de migratie loopt, en een vernieuwing in Power BI leest in één keer de volledige bestandsinventaris eruit.
| Uitgangspunt bij 100 miljoen bestanden | Waarom | |
|---|---|---|
| Opslag | Snelle SSD of NVMe, met enkele honderden GB voor de gegevens, de indexen en groeiruimte | De bestandsrijen bevatten lange paden en metadata; trage schijven laten elke vernieuwing en de schrijfacties van elke run wachten |
| Geheugen | 32–64 GB | Zodat de indexen en de meest gelezen gegevens in het geheugen blijven |
| Processor | 8 cores of meer | Runs schrijven terwijl vernieuwingen lezen |
| Netwerk | Een snelle verbinding met de SMART Migration-server en met de computers die het rapport vernieuwen | Een vernieuwing verplaatst de volledige inventaris over deze verbinding |
Dit zijn uitgangspunten: de werkelijke behoefte hangt af van de metadata die de bronnen bevatten en van het aantal runs per bestand. Een gehoste PostgreSQL-service werkt ook, op dezelfde manier gedimensioneerd. Maak back-ups van de database zoals van elke productiedatabase: het is het dossier van de migratie.
De Power BI-computer
Section titled “De Power BI-computer”Power BI Desktop importeert de gegevens van het rapport in het geheugen van de computer: zolang SMART BI.pbix geopend is, staat de volledige bestandsinventaris die het bevat in het RAM, en een vernieuwing heeft tot het dubbele nodig terwijl de nieuwe kopie naast de oude wordt opgebouwd. Lange tekstkolommen (paden en bestandsnamen) laten zich het minst comprimeren en nemen het meeste ruimte in.
Het minimum van Microsoft geldt voor het programma, niet voor deze gegevens
Microsoft vraagt 2 GB geheugen, 4 GB aanbevolen, om Power BI Desktop uit te voeren. Daarmee opent het programma; het houdt geen bestandsinventaris van tientallen miljoenen rijen vast. Voor een migratie van die omvang is een computer met 64–96 GB geheugen niet ongewoon.
| Bestanden in het rapport | Geheugen, als ruw uitgangspunt |
|---|---|
| Enkele miljoenen | 16–32 GB |
| Tientallen miljoenen | 64 GB |
| 100 miljoen en meer | 64–96 GB, of meer |
- 64-bits Windows en de 64-bits Power BI Desktop, een snelle processor met veel cores en een SSD.
- Vernieuw waar het geheugen is: één goed uitgeruste computer, of een virtuele machine die ervoor is gedimensioneerd, vernieuwt het rapport en uploadt het naar Nextcloud; alle anderen openen het geüploade bestand. Openen vraagt minder dan vernieuwen.
- Beperk het rapport tot wat u nodig hebt: laat kolommen weg die geen enkele pagina gebruikt, of filter de gegevens op de betreffende golven of sites. Zie Het SMART BI-rapport aanpassen aan uw behoeften
De Power BI-service
Section titled “De Power BI-service”Gepubliceerd in de Power BI-service heeft het semantische model van het rapport dezelfde behoefte, en de licentie bepaalt het plafond. Met Power BI Pro kan een semantisch model maximaal 1 GB bevatten. Op een Premium- of Fabric-capaciteit, met de opslagindeling voor grote semantische modellen, kan een model groeien tot het geheugen van de capaciteit:
| Fabric-capaciteit | Maximaal geheugen voor één semantisch model |
|---|---|
| F32 | 10 GB |
| F64 | 25 GB |
| F128 | 50 GB |
| F256 | 100 GB |
Een vernieuwing kan het dubbele van de grootte van het model nodig hebben, dus een model dat de helft van het geheugen van de capaciteit benadert, kan mogelijk niet worden vernieuwd. De limieten van Microsoft veranderen: controleer ze in de documentatie van Microsoft voordat u een capaciteit kiest. Niets in SMART Migration heeft de service nodig; Power BI Desktop is gratis voor iedereen. Zie Power BI voor beginners
Dimensioneer vóór de grote golven
Section titled “Dimensioneer vóór de grote golven”De bovenstaande cijfers zijn een richtlijn. De omvang die telt, is uw eigen omvang, en een pilot laat die zien:
Voer Discovery uit op een representatief deel
Voer Discovery uit op enkele sites, OneDrives en shares die op de rest lijken, niet alleen op de kleinste.
Vernieuw het rapport en meet
Vernieuw
SMART BI.pbixin Power BI Desktop en noteer het geheugen dat het in Windows Taakbeheer inneemt, de grootte van het bestand en de grootte van de rapportagedatabase.Schaal op naar de hele migratie
Vermenigvuldig met het aantal bestanden in de hele migratie, rekening houdend met het aantal runs dat elk bestand krijgt, en dimensioneer de PostgreSQL-server en de Power BI-computer voordat de grote golven beginnen.
Zie ook