Les équipes iOS multi-projets qui lancent Detox sur des Mac mini M4 en parallèle partagent un budget unique : sessions Simulateur, propagation WAN des artefacts dérivés, et seuil disque avant instabilité des suites. Voici une matrice décisionnelle et une checklist 1 To / 2 To pour arbitrer l’inter-région avec des chiffres.

Pourquoi Detox cède avant le processeur

Boots Simulateur concurrents gonflent l’E/S métadonnées APFS vite. DerivedData partagé sans promotion donne des arbres semi-écrits : build OK, gestes KO. Sur 1 To, CoreSimulator + caches entrent en collision tôt.

  • Sursouscription des sessions : comptez chaque Simulateur comme RAM, framebuffer et stockage — et non comme « un fil par cœur ».
  • Courses sur les artefacts : deux agents qui écrivent le même chemin de cache chaud sans file corrompent l’incrémental.
  • Falaises disque : les bandes jaune / rouge diffèrent entre 1 To et 2 To ; n’élargissez la concurrence que lorsque les seuils restent au vert.

Croisez avec la matrice Xcode Parallel Testing & Simulateur pour xcodebuild ; revenez ici pour Detox, rsync et disque.

Plafonds de concurrence

Tableau-contrat plateforme mobile, CI et FinOps : le coût d’une voie de plus sur M4.

Posture Budget Simulateur parallèle Politique DerivedData Région / WAN Indice disque
Rafale mono-région Deux à quatre simulateurs sur 16 Go ; validez la queue avant d’augmenter. Répertoires par job ; pas de racine DerivedData partagée entre Detox concurrents. Artefacts sur LAN ; pas de cache chaud inter-régions. 1 To viable avec rotation hebdomadaire des caches et purge dure à la fusion.
File multi-applications Sérialiser par app ; plafonner les runtimes bootés. Instantanés lecture seule post-compile pour les tests. Files inter-régions : budget de latence sur sondes Detox. 2 To lorsque trois grosses applications ou plus partagent un même hôte.
Fan-out inter-régions Moins de concurrence par nœud ; plus de M4 que du « héroïque » local. rsync en région d’origine ; contrôle avant boot. RTT + --bwlimit pour préserver l’E/S Simulateur. 2 To par défaut lorsque copies WAN et simulateurs cohabitent sur un volume APFS.

Paramètres rsync des artefacts

Caches chauds vus comme atomiques : répertoire versionné, rsync archive, fichiers partiels, compression tardive, bande passante plafonnée sur WAN pour laisser l’E/S Simulateur respirer.

Deltas par dates ou checksums plutôt que suppressions aveugles ; swap de symlink ou rename unique post-transfert. Motifs : matrice rsync cluster et flock.

Astuce : corrélez codes rsync et id session Detox pour distinguer transport et régression.

Verrous et files d’attente

Un seul rédacteur par promotion : merge queue, verrou racine cache, ou jeton Nomad ; lecteurs en fan-out.

Files CI + flock court sur DerivedData / CoreSimulator partagés. Voir Nomad, affinité & verrous sur Mac mini M4.

Stratégie d’extension

Ajoutez des nœuds quand la file croît avec un seuil disque sain — pas à 90 % « par envie ». Baissez d’abord les plafonds Simulateur, fragmentez les apps, puis 2 To.

  1. Mesurer octets libres APFS, attente disque, p95 boot Detox chaque semaine.
  2. Seuils jaune / rouge par gamme ; échec rapide sans dérogation.
  3. Geler nouvelles voies si hôtes en rouge ; retirer les instables.
  4. Plus de M4 dans la région d’origine des artefacts avant WAN élargi.
  5. Rejouer la matrice après upgrade runtime iOS majeur.
2–4
Sessions Simulateur parallèles par défaut à valider sur 16 Go M4 avant de relever les plafonds.
70 %
Prévoir rotation des caches lorsque l’usage APFS soutenu dépasse soixante-dix pour cent sur 1 To.
80 %
Déclencher une revue d’extension avant que quatre-vingts pour cent deviennent la médiane hebdomadaire.

Checklist d’acceptation des seuils disque 1 To / 2 To

  • Prévol octets : l’agent publie les gigaoctets libres APFS ; le job avorte sous le seuil jaune.
  • Plafond Simulateur : les sessions Detox actives ne dépassent jamais la ligne de matrice signée pour ce SKU.
  • Vérification rsync : contrôles d’intégrité ou politique stricte des dates de modification avant bascule de lien vers les consommateurs.
  • Preuve de verrou : les événements de promotion incluent l’identifiant de verrou dans des journaux structurés pour audit.
  • Politique de purge : fenêtres de rétention CoreSimulator et DerivedData documentées et automatisées.
  • Drainage post-run : les jobs en échec libèrent quand même les jeux d’appareils et arbres temporaires dans l’heure.
  • Inodes : df -i au vert — inode saturé sans espace « plein » visible.

Synthèse : louer du parallèle aligné sur la réalité Detox

Trois courbes : file Detox, p95 boot Simulateur, APFS. File ↑ disque vert → plus de M4 en parallèle géographiquement cohérent. Disque jaune, files calmes → caches / rsync avant cœurs.

Parcourez les forfaits publics, le centre d’aide pour les schémas d’accès SSH/VNC, puis Achat pour ajouter des exécuteurs lorsque la checklist reste au vert sous la charge Detox de pointe.

Guide opérationnel uniquement. Ajustez les plafonds avec vos propres traces Detox et les notes de version Apple. Les seuils dépendent de la rétention, des instantanés et du partage du volume avec d’autres piles.
Capacité iOS parallèle

Convertir la charge Detox en nœuds Mac mini M4

Ajoutez des M4 dédiés en 1 To ou 2 To, gardez les budgets Simulateur explicites, et placez le calcul près de l’origine des artefacts. Articles liés : Xcode Parallel Testing & disque, Matrice rsync cluster, Nomad & verrous de build.

Louer des nœuds parallèles Voir les forfaits (sans connexion) Centre d’aide