首页 > 解决方案 > Azure Kubernetes 服务 (AKS) 上的 Wordpress 非常慢

问题描述

我使用 Azure 存储在 Azure 上的 kubernetes 中有一个测试 wordpress 站点。它有效,但非常非常缓慢。

这是配置:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: wordpress-volume
  namespace: cadlearning
  labels:
    type: slow
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  storageClassName: azurefilestorage
  azureFile:
    secretName: storage-secret
    shareName: wordpress
    readOnly: false
  mountOptions:
    - dir_mode=0777
    - file_mode=0777
    - uid=1000
    - gid=1000
    - mfsymlinks
    - nobrl

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: wordpress-volume-claim
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: azurefilestorage
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress-deployment
  namespace: cadlearning
  labels:
    app: wordpress
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wordpress
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: wordpress
    spec:
      containers:
        - image: wordpress:latest
          name: wordpress
          env:
            - name: WORDPRESS_DB_HOST
              value: mysql.database.azure.com
            - name: WORDPRESS_DB_NAME
              value: BetaWWW
            - name: WORDPRESS_DB_USER
              value: admin
            - name: WORDPRESS_DB_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: wordpress-db
                  key: password
          ports:
            - containerPort: 80
              name: wordpress
          volumeMounts:
            - name: azurefileshare
              mountPath: "/var/www/html"
      volumes:
        - name: azurefileshare
          persistentVolumeClaim:
            claimName: wordpress-volume-claim

这是配置的总和。但是请求非常缓慢。查看日志(没有错误),甚至接收请求并查看日志中的任何内容都非常慢。

我遵循了这个:https://ahenriksson.com/2020/01/27/how-to-set-up-wordpress-behind-a-reverse-proxy-when-using-nginx/希望它是关于问题所在的入口没有任何成功。

一旦它开始响应,一切都会很快加载。只是大约 9 秒的初始延迟杀死了它。

所以我很茫然。如何让 azure kubernetes 上的 wordpress 快速响应?

标签: wordpressazure-storageazure-aks

解决方案


我遇到了同样的问题,我的 MongoDB 卷安装到 Azure Fileshare,它的执行速度非常慢(大约慢了 2-3 倍),并且很容易使我的 Pod 的 CPU 使用率变高,并且仅被 2-3 个请求限制。在将我的项目部署在 Ubuntu VM 上之前,卷被挂载到 VM 磁盘本身,我没有遇到这种糟糕的性能。

我认为不仅我们有这个问题。在这里检查,直到现在,这似乎是 FileShare 很久以前的问题。链接中的一些人也尝试了 FileShare Premium,但它不起作用。

他们的解决方案是使用 azure Disk 来存储需要更好性能、高 IO 的数据:比如数据库。

更新:我已经使用高级 Azure 磁盘 ( managed-premium) 进行了测试。结果并没有我预期的好多少。

这是我的实验,我对具有约 70K 记录的 MongoDB 集合执行一些请求(每批都是特定类型的请求):

| Environment + Storage class | Batch 1 | Batch 2 | Batch 3 |
|-----------------------------|---------|---------|---------|
| UbuntuVM + SSD (on same VM) | 36ms    | 741ms   | 3.29s   |
| K8S + azurefile             | 133ms   | 4.25s   | 10.39s  |
| K8S + managed-premium       | 46ms    | 2.73s   | 8.26s   |
| K8S + default               | 53ms    | 2.87s   | 7.82s   |

所有这些都在容器内运行(Docker)

环境是我部署项目的地方,我的数据库安装到适当的存储


推荐阅读