MySql сервер, развернутый в kubernetes, очень медленно отвечает - PullRequest
2 голосов
/ 29 апреля 2020

Я развернул mysql в Куберне. Стручки работают и работают. Но когда я попытался создать базу данных, таблицу и вставить данные, все эти операции, похоже, были очень медленными. Вот файлы yaml, которые я использовал для развертывания. Можете ли вы взглянуть на yaml и предложить мне, что может быть причиной для этого.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  serviceName: "mysql"
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - image: mysql:8.0.20
        name: mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: password
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
  volumeClaimTemplates:
    - metadata:
        name: mysql-persistent-storage
      spec:
        accessModes: [ "ReadWriteOnce" ]
        storageClassName: rbd-default
        resources:
          requests:
            storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  type: NodePort 
  ports:
  - port: 3306
    targetPort: 3306
  selector:
    app: mysql

Я попытался создать базу данных после того, как я ввел c в модуль, операция завершилась за 40 се c. , Когда я попытался подключить его к visual studio и выполнить ту же операцию, это заняло у меня более 4 минут. Я думаю, что 40 se c само по себе слишком долго. Однако выборка данных заняла 300 мс у Visual Studio. Я подключил его к visual studio, используя IP и порт узла

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Спасибо всем, что уделили время, чтобы ответить на вопрос. Я думаю, что я решил проблему. Это был в основном класс хранения, который я использовал, который вызывал проблему. Как только я обновил его до rbd-fast, ответ стал намного быстрее.

0 голосов
/ 29 апреля 2020

Это звучит как задержка / тайм-аут поиска DNS. Если это так, вам нужно установить skip_name_resolve в вашем конфигурационном файле в разделе [mysqld]:

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_skip_name_resolve

Обратите внимание, что вы не сможете использовать 'user' @ 'host' для прав доступа, если вы сделаете это, вам придется использовать 'user' @ 'ip_address' в ваших правах доступа. Вы все еще можете использовать подстановочный знак%, например, 'user'@'10.0.%' является действительным. 'user' @ 'localhost' также будет продолжать работать, поскольку это фактически означает локальный сокет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...