Grazie, quel dettaglio aggiuntivo è utile.
Dato che stai eseguendo su ARM64, potrebbe essere rilevante. Il supporto dei container ARM/aarch64 di Discourse ha storicamente richiesto una gestione particolare rispetto a x86_64, quindi ti consiglio di menzionarlo chiaramente nel titolo dell’argomento o nel primo post.
Il risultato del plugin AI è anche interessante. Dato che l’avviso è scomparso dopo aver disabilitato il plugin AI, ma non è ricomparso immediatamente dopo averlo riabilitato, potrebbe essere stato causato da un’inizializzazione una tantum, un riscaldamento della cache, una configurazione del modello/fornitore o uno stato di background, piuttosto che da un bug del plugin riproducibile in modo coerente.
A questo punto continuerei a osservare, ma se si ripresenta, cercherei di catturare:
- l’endpoint API esatto e la struttura del payload, rimuovendo eventuali contenuti privati;
- se l’avviso appare solo nel primo post API dopo un riavvio/ricostruzione o in ogni post API;
- la durata della richiesta lato client;
- se la disabilitazione del plugin AI rimuove in modo affidabile l’avviso in più test;
- se lo stesso accade su x86_64 o solo su ARM64, se sei in grado di testarlo.
Per verificare la durata della richiesta lato client, puoi usare curl con output temporizzato, ad esempio:
curl -s -o /dev/null \
-w "total=%{time_total}s connect=%{time_connect}s starttransfer=%{time_starttransfer}s\n" \
-X POST "https://your-site.example.com/posts.json" \
-H "Api-Key: YOUR_API_KEY" \
-H "Api-Username: YOUR_USERNAME" \
--data-urlencode "title=API timing test" \
--data-urlencode "raw=Small plain text API test post" \
--data-urlencode "category=1"
Se la richiesta stessa richiede circa 2 secondi o più, l’avviso sul mutex sta probabilmente segnalando solo che il percorso di creazione del post ha richiesto più tempo del previsto da Discourse. Se la richiesta è molto veloce ma l’avviso appare comunque, sarebbe più interessante.
L’hardware sembra più che sufficiente per un sito con un solo utente, quindi potrebbe trattarsi di una questione specifica dell’architettura/distribuzione/percorso del plugin piuttosto che di un semplice sotto-dimensionamento.