wordpress - 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 快速响应?
解决方案
我遇到了同样的问题,我的 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)
环境是我部署项目的地方,我的数据库安装到适当的存储
推荐阅读
- go - golang 中睡眠导致时间间隔相差十倍
- sql - 逐行迭代Oracle SQL查询结果,产生子查询
- java - KafkaStream - 转换时出现 NullpointerException
- c# - 新手问题:如何绑定到Margin属性的一部分
- javascript - 如何防止“我自己的”javascript代码打开一个新窗口?
- flutter - isLocationOnPath() 在计算标记是否接触折线时给出不准确的结果
- iis-7 - IIS 重写域加倍
- javascript - 不使用工作区的纱线 nohoist
- python-3.x - 在第一次验证错误时停止执行并在 Pydantic 中返回?
- java - cordova build android in windows 10 显示以下问题