3

Comment changer la taille du dossier de mémoire partagée /dev/shm dans une application App Engine flexible?Comment modifier la taille du/dev/SHM dans App Engine Flexible

Par défaut, il est réglé sur 64M, trop faible pour exécuter de nombreuses applications (par exemple, chrome). Je ne vois aucun moyen de le changer. Il existe des moyens de le changer si vous avez accès au docker run command, mais nous ne disposons pas d'un tel accès lors du lancement d'applications flexibles pour les applications.

+0

Vous devriez aussi interroger google support pour cela. La documentation autour de la personnalisation n'est pas disponible beaucoup –

+0

Donc ce n'est pas la même chose mais vous pouvez créer des volumes tmpfs si cela vous aide. https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml#resource-settings –

+0

@ZachFewtrell qui serait utile si vous pouviez monter dans/dev/shm . J'ai essayé et ça ne marche pas. –

Répondre

2

A: Non

Malheureusement, ce n'est pas possible (encore?) Avec AppEngine. Plus de quelques personnes ont rencontré ce problème. Pour une raison quelconque, le conteneur par défaut pour/dev/shm est fou petit.

... mais il y a d'autres options

Si le processus que vous souhaitez exécuter a la possibilité de configurer l'emplacement des tmpfs qu'il utilise, alors vous pouvez create a tmpfs et simplement pointer là. Le chrome ne peut pas faire cela.

Option 1

Si vous souhaitez déployer un conteneur à Google Cloud, une option est d'utiliser container engine. Vous pouvez ensuite monter un volume tmpfs à vos gousses comme ceci:

spec: 
    volumes: 
    - name: dshm 
    emptyDir: 
     medium: Memory 
    containers: 
    - image: gcr.io/project/image 
    volumeMounts: 
     - mountPath: /dev/shm 
     name: dshm 

Kubernetes a une courbe d'apprentissage assez raide, mais il vous permettra de décapsuler la limite/dev/SHM.

Option 2

Il y a une nouvelle fonctionnalité qui vous permettra de deploy containers to compute engine, mais il est actuellement en phase alpha et vous aurez besoin de demander que votre projet whitelisted utiliser cette fonctionnalité.

Option 3

Bien sûr, vous pouvez déployer des conteneurs à GCE de manière plus manuelle en créant une instance GCE en utilisant COS (container optimized os)


Mise à jour du commentaire de speedplane

Option # 4

Si l'objectif est d'exécuter un navigateur complet sur le moteur de l'application flexible, alors les nouvelles versions de Firefox s'exécutent sans tête dans Docker.

+1

Je voudrais ajouter l'option n ° 4 (qui est ce que je suis allé avec) ... si l'objectif est d'exécuter un navigateur complet sur le moteur de l'application flexible, alors les nouvelles versions de Firefox fonctionnent sans tête très bien dans Docker. – speedplane

2

Ceci est la réponse que je reçus de Google Support (support ID 13757624):

Je comprends que vous avez demande s'il serait possible d'augmenter la taille du/dev/SHM dans App Engine Flex .

Malheureusement, cela est impossible. Étant donné que Flex est géré VM, la valeur par défaut est conservée. Vous pouvez essayer de créer manuellement une commande sur votre dockerfile pour modifier le cache partagé via Sudo mais il n'y a aucune garantie donc je ne peux pas dire que cela peut fonctionner, ça vaut le coup try étant donné que vous utilisez runtimes personnalisés sinon, il n'y a pas d'autre moyen.