Puncte:1

Opțiuni de îmbunătățire a performanței operațiunilor cu metadatele SMB pentru montarea volumului containerului

drapel kh

Întrebare

Există modalități de a îmbunătăți performanța operațiunii cu metadate între un container bazat pe Linux care rulează sub Azure App Service și un volum montat găzduit în Azure Files?

Context

Am migrat recent o soluție care avea totul pe un singur server la o soluție bazată pe Azure, unde:

  • Codul rulează pe un container găzduit sub Azure App Service.
  • Acele fișiere care fac parte din datele de afaceri sunt pe Azure Files (adică o partajare sub un cont Azure Storage) / montate pe container (prin intermediul serviciului de aplicație). Setări > Configurare > Mapările căilor secțiune).

Acest lucru a introdus unele probleme de performanță cu operațiunile care caută într-un folder pentru a vedea dacă există anumite fișiere. Acest lucru se face în prezent prin PHP funcția fișier-există.

Când testez pe dispozitivul meu local, pot îmbunătăți performanța adăugând : în cache la parametrul bind; de exemplu. --mount type=bind,source=d:\my\host\path,target=/var/my/container/path:cached; dar nu găsesc o opțiune pentru a face ceva similar în Azure App Service.

Containerul meu rulează Linux (Ubuntu:21:10); și am citit că operațiunile cu metadate SMB (inclusiv verificarea dacă există un fișier) au o suprasarcină mai mare în Linux decât Windows; deci poate este legat (adică, deoarece Azure Files folosește SMB); deși nu sunt sigur (deoarece calea este montată pe container, astfel încât sistemul de operare al containerului poate să nu fie conștient de implementarea de bază).

Am activat partajări mari de fișiere pentru a crește IOP-urile disponibile pentru partajarea fișierelor; dar nu a făcut nicio diferență (care, având în vedere că aceasta este mai degrabă o problemă de metadate decât de performanță IO, are sens).

În prezent, mă gândesc că soluția ar fi actualizarea codului pentru a păstra o reprezentare a structurii fișierelor în baza de date a aplicației, astfel încât să putem interoga asta pentru a obține aceleași informații mai rapid; dar acest lucru are dezavantajul că fiecare operațiune de încărcare sau ștergere a unui fișier trebuie să actualizeze și baza de date pentru a menține informațiile de disc și db sincronizate / duplicate acolo unde sunt păstrate informațiile; deci sunt dornic să rezolv această problemă de infrastructură, mai degrabă decât să recodez dacă este posibil.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.