过去几天我一直在挠头,试图为以下问题提出解决方案:
在我们的数据中心,我们有一个运行在 BigIP 硬件上的 F5,它充当来自全国各地不同办公地点的客户端机器的 HTTPS 请求的单一入口点。F5 终止 TLS,然后将所有请求转发到两个 Traefik 负载均衡器,后者将请求路由到各种服务实例(Traefik 节点在 Red Hat Enterprise 上的 Docker 中运行,但我认为这与我的问题无关)。从吞吐量、CPU 和内存的角度来看,这三个网络组件完全有能力处理大量请求和流量,并有足够的备用容量。
但是,我们注意到客户端发出的 HTTP(S) 请求频繁出现 1000 毫秒的延迟,尤其是在高负载时间。我们将问题跟踪到以下根本原因:
显然,那些 1000 毫秒的延迟是绝对不能接受的。所以到目前为止我们已经考虑了以下解决方案: …
我有 3 台机器,其磁盘(实际上是 SSD)采用 RAID1,故意使用不同品牌,以防止它们因磨损而同时丢失。它们很实用。
它们的两个磁盘上的 Total_LBA_Written 数量应该大致相同。但数字有很大不同,例如 smartctl 在 Samsung SSD 850 EVO 2TB 上报告 2596016156,但在配套的 WDC WDS200T2B0A-00SM50 上报告 1237:
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 2596016156
241 Total_LBAs_Written 0x0030 253 253 --- Old_age Offline - 1237
Run Code Online (Sandbox Code Playgroud)
我最好的猜测是第一个报告以 512 字节为单位,第二个以Gibibyte为单位。这可以解释比率为 2 21(较小值在 1 个单位内)。
Total_LBA_Written 条目的单位是否在某处标准化?有没有系统的方法来确定?如果没有,练习什么单元?
更新,2023 年 10 月(4 年后):该配置仍在使用(并且很好)。现在它写着:
241 Total_LBAs_Written 0x0032 099 099 000 Old_age Always - 219294945066
241 Total_LBAs_Written 0x0030 253 253 --- Old_age Offline - 104567
Run Code Online (Sandbox Code Playgroud)
两个驱动器的值之间的比率为 2 …
我已经在DERencodig 中导出了我的证书(扩展名为 .cer)。有没有办法在Base-64编码中转换这些证书(具有相同的扩展名)?谢谢
相对简单的 Azure 应用服务(目前是 .net 4.6.2,针对 Azure SQL)已经运行了 18 个月以上。它坚如磐石。我很少考虑这个网站,并且已经好几个月没有发布更新了。
今天早上我醒来,发现客户发来电子邮件,称该网站正在报告“指定的 CGI 应用程序遇到错误,服务器终止了该进程”。作为第一个猜测,我从 Azure 门户中针对应用服务单击了“重新启动”。大约一分钟后,它又恢复了活力,并且从那时起就一直运行良好。
我转到“诊断和解决问题”->“可用性和性能”。“请求和错误”时间线显示了网站关闭的时间以及恢复的时间。我深入研究了时间线并选择了“完整报告”。
它以非常实际的方式报告了以下内容
检测到应用程序停止事件 我们分析了 3 个平台事件、1 个用户事件。
平台(文件服务器升级) 您的应用程序因文件服务器升级而被回收。此事件在一天中多次发生,涉及多个实例。这些事件会导致存储卷移动,这可能会导致应用程序重新启动。如果此重启事件对应用程序的可用性产生负面影响,启用本地缓存功能可以在一定程度上帮助减少对存储文件服务器的依赖。了解更多信息:检查故障排除和后续步骤中描述的本地缓存。
平台(基础设施升级) 2019 年 11 月 20 日下午 2:09:57 左右(UTC),在实例 xxxxxxxx 上,您的应用程序因 Azure 规模单元正在进行升级而被回收。Microsoft 会定期对底层 Azure 平台进行更新,以提高运行应用程序的平台基础结构的整体可靠性、性能和安全性。大多数更新的执行不会对您的 Web 应用程序产生任何影响。为了减少此类事件对应用程序的影响,请考虑将应用程序部署到多个区域并使用 Azure 流量管理器跨区域分配负载。
用户(停止站点) 2019 年 11 月 20 日下午 9:00:00(UTC)左右,您的应用程序进程由于用户操作(例如从 Azure 门户停止站点)而重新启动。
我完全不知道该怎么办以及如何防止这种情况再次发生。
我怀疑“本地缓存”的建议是转移注意力。我使用文件系统创建一些临时文件,代码随后将其删除。
谷歌搜索返回的结果很少。
我想我正在寻求有关我可以采取哪些措施来确保这种情况不再发生的建议。
有任何想法吗?
提前致谢。
让我们从房间里的大象开始:我没有接受过正式的培训,而且由于各种离题的原因,我得到了几台小型服务器的管理。这是说我的知识是零散的。请多多包涵。
其中一台服务器专用于少数用户(少于 10 个)的大量计算,有人问我是否可以启用用户之间文件访问策略的细粒度决策。
我的意思是我的用户希望有一种方法来决定以每个文件和每个用户的方式授予对他们文件的访问权限。因此,例如,用户 1、用户 2 和用户 3 可以访问文件夹 A,而用户 2 和用户 4 可以访问文件夹 B,而所有者以外的任何人都无法访问文件夹 B。
他们或多或少希望在本地用户之间对他们的个人文件进行“保管箱式”访问管理,仅适用于他们的本地文件。
我找不到任何相关的信息,所以我想知道从安全性和可行性的角度来看,这是否是一个可以合理激活的功能。我承认我以前从未想过它,但它是一个在多用户服务器中对协作任务有意义的功能。
由于组不是解决方案(我最多需要 30 个),因此 Nextcloud 是矫枉过正,而不适合您正在编码的活动项目。也许是 git 或 PAM?
我正在按照 Google 的教程为我的云功能设置端点。
当我尝试使用 URL 从浏览器访问端点时,service_name.a.run.app/function1我得到
Error: Forbidden
Your client does not have permission to get URL /function1GET from this server
Run Code Online (Sandbox Code Playgroud)
作为上述教程和Google 产品经理的回答的一部分,我通过授予 ESP 调用我的函数的权限来保护我的函数。
gcloud beta functions add-iam-policy-binding function1 --member "serviceAccount:id-compute@developer.gserviceaccount.com" --role "roles/cloudfunctions.invoker" --project "project_id"
Run Code Online (Sandbox Code Playgroud)
我的openapi-functions.yaml
swagger: '2.0'
info:
title: Cloud Endpoints + GCF
description: Sample API on Cloud Endpoints with a Google Cloud Functions backend
version: 1.0.0
host: HOST
x-google-endpoints:
- name: "HOST"
allowCors: "true
schemes:
- https
produces:
- application/json …Run Code Online (Sandbox Code Playgroud) 我安装了 Debian 10 (Buster) 并从 Backports 添加了 ZFS。我有 4 个 iSCSI-LUN,用作 ZFS 的磁盘。每个 LUN 都有一个单独的 zpool。
到目前为止,ZFS 设置有效。但是系统不是重启稳定的。有时重新启动后,所有 ZFS 卷都会恢复并正确安装,有时则不会。我认为会发生这种情况,因为 ZFS 不会等待 iSCSI 完成。
我试过:
/etc/systemd/system/zfs-import-cache.d/after-open-iscsi.conf
[Unit]
After=open-iscsi.service
BindsTo=open-iscsi.service
Run Code Online (Sandbox Code Playgroud)
systemd-analyze 关键链 zfs-import-cache.service
The time after the unit is active or started is printed after the "@" character.
The time the unit takes to start is printed after the "+" character.
zfs-import-cache.service +1.602s
??open-iscsi.service @2min 1.033s +286ms
??iscsid.service @538ms +72ms
??network-online.target @536ms
??ifup@eth0.service @2min 846ms
??apparmor.service @2min 748ms +83ms
??local-fs.target @2min …Run Code Online (Sandbox Code Playgroud) 我正在尝试遵循参数/示例,但在执行 Ansible'playbook 时遇到以下警告消息:
TASK [apt (pre)] ********************************************************************************************
[WARNING]: The value True (type bool) in a string field was converted to u'True' (type string). If this does
not look like what you expect, quote the entire value to ensure it does not change.
Run Code Online (Sandbox Code Playgroud)
剧本的相关部分:
- name: apt (pre)
apt:
update_cache: yes
upgrade: yes
Run Code Online (Sandbox Code Playgroud)
请指教。
NTFS 目录的高级权限对话框将权限之一列为“遍历文件夹/执行文件”。
这些对我来说似乎是两个独立且完全不相关的概念。
任何人都可以提供理由/解释为什么将这两个概念合并为一个权限?官方文档当然是最好的,但我会进行有根据的猜测。
我想为我们的应用程序和服务预先填充带有命名空间及其各自机密的 kubernetes 集群。为此,我希望能够指定 2 个列表、1 个带有机密的列表和 1 个带有命名空间的列表。列表中的每个命名空间都有一个秘密列表。像这个 values.yaml:
secrets:
- name: secret1
data: key1
- name: secret2
data: key2
- name: secret3
data: key3
namespaces:
- name: app1
secrets:
- secret1
- secret2
- name: app2
secrets:
- secret1
- secret3
Run Code Online (Sandbox Code Playgroud)
然后我想遍历命名空间以创建命名空间,例如:
{{- range $namespaces := .Values.namespaces }}
apiVersion: v1
kind: Namespace
metadata:
name: {{ $namespaces.name }}
---
{{- end }}
Run Code Online (Sandbox Code Playgroud)
在那个循环中,我想要在这个循环中使用另一个循环,用秘密列表中的数据创建每个命名空间的秘密。有点像这样:
{{- range $secrets := .secrets }}
apiVersion: v1
kind: Secret
metadata:
name: {{ .name }}
namespace: {{ …Run Code Online (Sandbox Code Playgroud) ansible ×1
azure ×1
certificate ×1
debian ×1
f5-big-ip ×1
go ×1
groups ×1
hard-drive ×1
helm ×1
high-load ×1
kubernetes ×1
ntfs ×1
open-iscsi ×1
openssl ×1
permissions ×1
smart ×1
ssd ×1
systemd ×1
tcp ×1
zfs ×1