当前位置: 首页 > news >正文

<QNAP 453D QTS-5.x> 日志记录: 优化性能 内存管理 修改swap优先顺序 swap放在ssd 网络稳定性 进程出错管理

起因

几个月前,开始重学编程,往 NAS 的 docker 里放了些 containers ,每一个用来跑练习的 App。为了放更多的app,上个月加了 4GB 内存。最近只放了两个,NAS 就会时不时的闪断。codes 全存在网络驱动器上,当存盘存时报错,浏览器显示网络断开,烦!登录 NAS QTS 会提示 swap 使用过高,内存用尽之类的。今天闲,调优顺手写个水文。 10年前 IT 是本行。

原有配置

  • 硬件是 QNAP TS-453D 2020年买的低配空壳,但送了 4GB 内存
  • 添了 2 块 4TB HHD 硬盘, RAID 1 运行,读出性提高。
  • 扩展卡,为使用 SSD 当缓存,提高性能。(还有一个 TS-210 特别慢)
  • 插了一片 256GB SSD  (Laptop 换下来的,可以说为这一片,买的上面这些...)
  • 上个月买了一条 4GB 内存



当前配置

初步性能提升

从上图,可以看到新加的 4GB 内存,在 NAS 中已经识别,虽然工厂不同,但兼容性是正常的。因为这是一个封闭的 Linux 系统,能做的不太多,只能在 OS 设置上找办法。

以下操作要使用 管理员 admin root 操作

1.预防网络服务的中断,减少 swap 使用

a. 调整 VM swappiness 去减少 swap 使用

文件:/proc/sys/vm/swappiness

VM Swappiness 是一个内核参数,控制 OS 使用交换内存(swap)的积极程度。值越高,系统越倾向于将内存中的数据放到硬盘;值越低,尽量保留数据在物理的内存中。

QNAP QTS 默认:25

[admin@davens templates]# cat /proc/sys/vm/swappiness
25

其实满低的,但我给它改为:10

[admin@davens templates]# echo 10 > /proc/sys/vm/swappiness
[admin@davens templates]# cat /proc/sys/vm/swappiness
10

b. 什么是 swap 虚拟内存 ( VM ) 技术

在 Linux 中,swap 是一种虚拟内存 ( VM ) 技术,它让系统使用硬盘空间来扩展物理内存(RAM)。当物理内存不够用时,系统会将一部分不常用的内存数据移到硬盘上的专用空间或文件,之后释放物理内存,把内存空间让给其它程序使用。

Linux Unix Windows 都用了这项技术

补充1: swap 会经常在硬盘的固定位置上 读写 操作, 如果你的物理内存足够大,比如我在用的老笔记本 32GB 内存,只是看网剧用。32GB 内存应该不会用满,可以在 Windows 11 中,把虚拟内存调为 0。还能保护 SSD。 

截屏这台 Laptop 是我儿子的,给个参考示范。在哪里设置 虚拟内存(Windows 里叫 Paging file),你需要以 系统管理员 身份运行才能修改:

c. 继续优化 修改 /etc/sysctl.conf

原文件内容:
[admin@davens templates]# cat /etc/sysctl.conf
vm.swappiness=10

有点儿奇怪,QNAP QTS 系统只有一行。淫吹斯丁。 /etc/sysctl.conf 是 Linux 系统中一个重要的内核参数配置文件。可以调整网络、内存管理、文件系统。

修改后内容:
[admin@davens templates]# sysctl -p
vm.swappiness = 10
vm.oom_kill_allocating_task = 1
vm.min_free_kbytes = 65536
vm.vfs_cache_pressure = 50
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.netdev_max_backlog = 2500
kernel.panic = 20
kernel.panic_on_oops = 1
[admin@davens templates]#
解释各个参数作用:

注:做这些前,不要完全参考我的参数,要以你的 NAS/Linux 系统来做相应调整

第一部分 内存管理

vm.swappiness = 10让系统更倾向使用物理内存
vm.oom_kill_allocating_task = 1OOM killer(Out-Of-Memory killer)当系统内存耗尽时,会选择并杀死 1 个进程,来释放内存
vm.min_free_kbytes = 65536系统必须保留 64 MB 内存  (通常是物理内存的 1% - 5%,因为我把 swap 放在 SSD,用 7 GB 的 1%,取最近 8 的倍数。)
vm.vfs_cache_pressure = 50控制内核,回收文件系统缓存(值:1-100), 50 内核减少回收缓存,提高文件系统性能。
第二部分 网络性能
net.core.rmem_max = 16777216设置接收的网络缓冲区:16MB 提高在高带宽、高延迟或高并发网络环境下的性能
net.core.wmem_max = 16777216设置发关的网络缓冲区:16MB 提高在高带宽、高延迟或高并发网络环境下的性能
net.ipv4.tcp_rmem = 4096 87380 16777216单独优化 Tcp 缓冲区的接收值大小。最小 4096 bytes,Linux默认值 87380, 最大值 16MB。
net.ipv4.tcp_wmem = 4096 65536 16777216单独优化 Tcp 缓冲区的发送值大小。最小 4096 bytes,Linux默认值 65536, 最大值 16MB。
net.core.netdev_max_backlog = 2500数据包队列的最大长度,在高负载时减少数据包丢失。
第三部分 系统稳定性
kernel.panic = 20内核崩溃后 20 秒自动重启
kernel.panic_on_oops = 1内核发生 Oops,系统会立即进入 panic,20秒后重启

注:Oops 当 Linux 内核检测到一些不一致或异常情况时,会生成 Oops 信息,但通常不会导致系统立即能崩溃。

2. 找出 swap 配置

a. CMD: free -g
[admin@davens ~]# free -gtotal       used       free     shared    buffers     cached
Mem:             7          4          3          0          0          0
-/+ buffers/cache:          3          4
Swap:           30          5         24

可以看到内存状态:

  • 总共:7GB (可能系统占用1GB没显示)
  • 使用:4GB
  • 可用:3GB
  • 缓存:0GB
  • 实际空闲:4GB (含缓存)
  • 实际使用:3GB (含缓存)

可以了解交换内存 swap 状态:

  • 总共:30GB
  • 使用:5GB
  • 空闲:24GB  

以前没留意过,没想到 QNAP 默认在系统里,分给这么大的交换内存,我的知识里,交换内存最大是物理内存的 2 倍。 现在技术是进步,还是逻辑不同了吗?

建议1:以下操作,先备份数据,再执行后面的命令。(我没有备份数据,以前是做 IT 的,就算 OS 起不来,也容易搞定。)

建议2:如果你的 NAS 是 RAID 1, 可以摘下一块儿硬盘或同组硬盘,幸运的话重建用1-2天,万一系统毁了,用这块/组盘来启动,能恢复之前的配置。

b. swaps 交换文件
原配置:/proc/swaps 用于存储 swaps 信息的
[admin@davens templates]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/dev/md321                              partition       7751228         6026840         -2
/dev/md256                              partition       530108          0               -3
/dev/md322                              partition       6702652         0               -4
/share/CACHEDEV1_DATA/.swap/qnap_swap   file            16777212        0               -5

从上面可以了解到:QNAP NAS 的交换内存(文件)的具体配置(文件名,交换内存的类型,大小,使用情况,优先级),TMD 我说 NAS 硬盘总是响,原来是 swap 害的。

QNAP QTS 把交换内存 swap 文件分为三份: /dev/md321  /dev/md256/ dev/md322 ,现在内存不够用,要经常读写 swap 这部分,草得雷。

而且它已经用了 CACHEDDEV1_DATA 这是 SSD 设备,优先级是 -5。竟然是最后,合着一只没用上。. 

c. 在 SSD 上创建一个新的 8GB swap 
[admin@davens templates]# dd if=/dev/zero of=/share/CACHEDEV1_DATA/.swap/ssd_swap bs=1M count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.0GB) copied, 39.890566 seconds, 205.4MB/s
[admin@davens templates]#

写的速度是 205.4MB/s ,现在可以确定 CACHEDDEV1_DATA 是 SSD,就用它做 swap。

这是 NAS 上的 SSD 缓存配置,就不分析上面的内容。 看到是健康的就行。

继添加 “ssd_swap” 到 swap 中,还要用以下的命令:

  • 分配权限 600:chmod 600 /share/CACHEDEV1_DATA/.swap/ssd_swap
  • 格式化新的swap:mkswap /share/CACHEDEV1_DATA/.swap/ssd_swap
  • 分配优先级:swapon -p -1 /share/CACHEDEV1_DATA/.swap/ssd_swap (但 QNAP 不支持 -1)
[admin@davens templates]# chmod 600 /share/CACHEDEV1_DATA/.swap/ssd_swap
[admin@davens templates]# mkswap /share/CACHEDEV1_DATA/.swap/ssd_swap
Setting up swapspace version 1, size = 8589930 kB
[admin@davens templates]# swapon -p -1 /share/CACHEDEV1_DATA/.swap/ssd_swap
[admin@davens templates]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/dev/md321                              partition       7751228         5995864         -2
/dev/md256                              partition       530108          0               -3
/dev/md322                              partition       6702652         0               -4
/share/CACHEDEV1_DATA/.swap/qnap_swap   file            16777212        0               -5
/share/CACHEDEV1_DATA/.swap/ssd_swap    file            8388604         0               -6

执行完以上命令后,竟然是 -6 ,新做的 swap 现在是最后一个使用的。

d. 重新分析 swaps 优先级
原来的:
[admin@davens templates]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/dev/md321                              partition       7751228         5995864         -2
/dev/md256                              partition       530108          0               -3
/dev/md322                              partition       6702652         0               -4
/share/CACHEDEV1_DATA/.swap/qnap_swap   file            16777212        0               -5
/share/CACHEDEV1_DATA/.swap/ssd_swap    file            8388604         0               -6
把每一个 swap 从系统中脱离:
[admin@davens templates]# swapoff /share/CACHEDEV1_DATA/.swap/ssd_swap
[admin@davens templates]# swapoff /share/CACHEDEV1_DATA/.swap/qnap_swap
[admin@davens templates]# swapoff /dev/md322
[admin@davens templates]# swapoff /dev/md256
[admin@davens templates]# swapoff /dev/md321
重新分配优先级:
[admin@davens templates]# swapon -p 1 /share/CACHEDEV1_DATA/.swap/ssd_swap
[admin@davens templates]# swapon -p 2 /share/CACHEDEV1_DATA/.swap/qnap_swap
[admin@davens templates]# swapon -p 3 /dev/md321
[admin@davens templates]# swapon -p 4 /dev/md256
[admin@davens templates]# swapon -p 5 /dev/md322
修改之后:
[admin@davens templates]# cat /proc/swaps
Filename                                Type            Size            Used            Priority
/share/CACHEDEV1_DATA/.swap/ssd_swap    file            8388604         23872           1
/share/CACHEDEV1_DATA/.swap/qnap_swap   file            16777212        0               2
/dev/md321                              partition       7751228         0               3
/dev/md256                              partition       530108          0               4
/dev/md322                              partition       6702652         0               5
[admin@davens templates]#

现在 VM 使用了 SDD。正因为交换内存 swap 从 HHD 换到了 SSD, NAS 安静多了。希望这个 3星 SSD 有长寿。 

相关文章:

<QNAP 453D QTS-5.x> 日志记录: 优化性能 内存管理 修改swap优先顺序 swap放在ssd 网络稳定性 进程出错管理

起因 几个月前,开始重学编程,往 NAS 的 docker 里放了些 containers ,每一个用来跑练习的 App。为了放更多的app,上个月加了 4GB 内存。最近只放了两个,NAS 就会时不时的闪断。codes 全存在网络驱动器上,当…...

一区牛顿-拉夫逊算法+分解+深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测

一区牛顿-拉夫逊算法分解深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测 目录 一区牛顿-拉夫逊算法分解深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.中科院一区…...

本地部署webrtc应用怎么把http协议改成https协议?

环境: WSL2 Ubuntu22.04 webrtc视频聊天应用 问题描述: 本地部署webrtc应用怎么把http协议改成https协议? http协议在安卓手机浏览器上用不了麦克风本,来地应用webrtc 本来是http协议,在安卓手机上浏览器不支持使…...

React简单了解

原理简化了解 import React from "react" import { createRoot } form "react-dom/client"const element React.createElement(p,{id: hello},Hello World! )const container document.querySelector(#root) const root createRoot(container) root.r…...

基于LabVIEW的USRP信道测量开发

随着无线通信技术的不断发展,基于软件无线电的设备(如USRP)在信道测量、无线通信测试等领域扮演着重要角色。通过LabVIEW与USRP的结合,开发者可以实现信号生成、接收及信道估计等功能。尽管LabVIEW提供了丰富的信号处理工具和图形…...

Docker挂载

目录 数据卷挂载 本地目录挂载 数据卷挂载 宿主机默认的存放所有容器数据卷的目录:/var/lib/docker/volumes nginx容器 静态文件目录:/usr/share/nginx/html 配置文件目录:/etc/nginx/nginx.conf 修改宿主机的内容,进入到容器查…...

使用Java结合经纬度位置计算目标点的日出日落时间

目录 前言 一、应用示例 1、天安门升旗时间 2、湖南省日出日落信息 二、JAVA日出日落计算 1、在线API 2、使用Java进行计算 三、总结 前言 随着城市化进程的加速,城市环境与人类生活的联系日益紧密。城市不仅承载着居住、工作、休闲等多种功能,也…...

八字精批api接口_php获取生成八字和批注的方法研究

八字算命 API 介绍 这个八字算命 API 提供了一种便捷的方式,让用户通过 GET 或 POST 请求获取详细的八字信息。API 返回的数据格式为 JSON,包含多种命理分析和建议,适合对传统命理学感兴趣的用户。 API 功能 五行分析: 提供用户…...

docker run 命令参数

user docker run -it --nameubn18 --gpus all --privilegedtrue --shm-size 8G ubuntu:18.04 /bin/bash-it 是什么意思 4o 在运行 docker run 命令时,-it 是两个选项的组合,用于更好地与容器进行交互: -i 或 --interactive:这个选…...

智能外呼技术如何改变企业营销方式

智能外呼技术如何改变企业营销方式 作者:开源大模型智能呼叫中心系统FreeAICC,Github:https://github.com/FreeIPCC/FreeAICC 在数字化时代,企业营销方式正经历着前所未有的变革。其中,智能外呼技术作为一项前沿的人…...

redis数据转移

可能有时候因为硬件的原因我们我们需要更换服务器,如果更换服务器的话,那我们redis的数据该怎样转移呢,按照一下步骤即可完成redis数据的转移 1.进入redis客户端 2.使用 bgsave命令进行数据的备份,此命令完成后会在你的redis安装目…...

STM32-笔记5-按键点灯(中断方法)

1、复制03-流水灯项目,重命名06-按键点灯(中断法) 在\Drivers\BSP目录下创建一个文件夹exti,在该文件夹下,创建两个文件exti.c和exti.h文件,并且把这两个文件加载到项目中,打开项目工程文件 加载…...

DotNetBrowser 3.0.0 正式发布!

🛠️ 重要消息:DotNetBrowser 3.0.0 正式发布! 我们很高兴向您介绍全新的 DotNetBrowser 3.0.0 版本。此次更新带来了多项重要功能与优化,进一步提升了 Web 开发的效率和体验。 📢 DotNetBrowser 3.0.0 包含哪些新功…...

MySQL基础笔记(三)

在此特别感谢尚硅谷-康师傅的MySQL精品教程 获取更好的阅读体验请前往我的博客主站! 如果本文对你的学习有帮助,请多多点赞、评论、收藏,你们的反馈是我更新最大的动力! 创建和管理表 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数…...

SEO初学者-搜索引擎如何工作

搜索引擎基础搜索引擎是如何建立索引的搜索引擎如何对网页进行排名搜索引擎是如何个性化搜索结果的 搜索引擎的工作方式是使用网络爬虫抓取数十亿个页面。爬虫也称为蜘蛛或机器人,它们在网络上导航并跟踪链接以查找新页面。然后,这些页面会被添加到搜索引…...

在Ubuntu下运行QEMU仿真FreeBSD riscv64系统

在Ubuntu下运行QEMU仿真FreeBSD riscv64系统 突发奇想,尝试在Ubuntu下运行QEMU仿真FreeBSD riscv64系统, 参考这篇文档:手把手教你在QEMU上运行RISC-V Linux_qemu 运行 .bin-CSDN博客 并参考FreeBSD的Wiki:riscv - FreeBSD Wik…...

SQL 使用带聚集函数的联结

聚集函数用于汇总数据,通常用于从一个表中计算统计信息,但也可以与联结一起使用。以下是一个例子,展示如何使用聚集函数统计每个顾客的订单数。 示例 1:使用 COUNT() 函数与 INNER JOIN 假设我们需要检索所有顾客及每个顾客所下…...

Linux网络功能 - 服务和客户端程序CS架构和简单web服务示例

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 概述准备工作扫描服务端有那些开放端口创建客户端-服务器设置启动服务器和客户端进程双向发送数据保持服务器进程处于活动状态设置最小…...

爬取Q房二手房房源信息

文章目录 1. 实战概述2. 网站页面分析3. 编写代码爬取Q房二手房房源信息3.1 创建项目与程序3.2 运行程序,查看结果 4. 实战小结 1. 实战概述 本次实战项目旨在通过编写Python爬虫程序,抓取深圳Q房网上的二手房房源信息。我们将分析网页结构,…...

【JavaEE初阶】线程 和 thread

本节⽬标 认识多线程 掌握多线程程序的编写 掌握多线程的状态 一. 认识线程(Thread) 1概念 1) 线程是什么 ⼀个线程就是⼀个 "执⾏流". 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 "同时" 执⾏着多份代码. 还…...

【IMU:视觉惯性SLAM系统】

视觉惯性SLAM系统简介 相机(单目/双目/RGBD)与IMU结合起来就是视觉惯性,通常以单目/双目IMU为主。 IMU里面有个小芯片可以测量角速度与加速度,可分为6轴(6个自由度)和9轴(9个自由度)IMU,具体的关于IMU的介…...

【python实现烟花】

可以使用 Python 的 turtle 模块来实现烟花效果。下面是一个简单的示例代码,展示如何用 turtle 绘制烟花: import turtle import random# 设置屏幕 screen turtle.Screen() screen.bgcolor("black")# 创建烟花函数 def draw_firework(x, y):…...

OpenCV学习——图像融合

import cv2 as cv import cv2 as cvbg cv.imread("test_images/background.jpg", cv.IMREAD_COLOR) fg cv.imread("test_images/forground.png", cv.IMREAD_COLOR)# 打印图片尺寸 print(bg.shape) print(fg.shape)resize_size (1200, 800)bg cv.resize…...

CS 144 check6: buiding an IP router

Lecture Notes Exercises 路由器的任务是根据路由表转发接收到的数据报:路由表是一系列规则,用于指导路由器针对任何给定的数据报应如何进行转发。 发送出什么接口。下一跳的IP地址。 这个check的工作是实现一个路由器,它可以为任何给定的…...

Pytorch | 从零构建ResNet对CIFAR10进行分类

Pytorch | 从零构建ResNet对CIFAR10进行分类 CIFAR10数据集ResNet核心思想网络结构创新点优点应用 ResNet结构代码详解结构代码代码详解BasicBlock 类ResNet 类ResNet18、ResNet34、ResNet50、ResNet101、ResNet152函数 训练过程和测试结果代码汇总resnet.pytrain.pytest.py 前…...

Spring整合Redis基本操作步骤

Spring 整合 Redis 操作步骤总结 1. 添加依赖 首先&#xff0c;在 pom.xml 文件中添加必要的 Maven 依赖。Redis 相关的依赖包括 Spring Boot 的 Redis 启动器和 fastjson&#xff08;如果需要使用 Fastjson 作为序列化工具&#xff09;&#xff1a; <!-- Spring Boot Re…...

java中的方法的重载和重写、构造器

目录 方法的重载和重写、构造器1.java的修饰符&#xff1a;2.普通方法3.构造器&#xff08;也叫构造方法/构造函数&#xff09;4.方法的重载5.补充6.方法的重写7.类的执行顺序8.再看方法的重写 方法的重载和重写、构造器 1.java的修饰符&#xff1a; public修饰的代码&#xf…...

Vite 系列课程|1课程道路,2什么是构建工具

Vite 系列课程 1. 课程导论 1.1 为什么要学习 Vite&#xff1f; 1.1.1 Webpack vs. Vite&#xff1a;新旧霸主的交替&#xff1f; Webpack 长期以来一直是前端构建工具的事实标准&#xff0c;拥有庞大的用户群体、成熟的生态系统和丰富的学习资源。然而&#xff0c;随着前端技术…...

【蓝桥杯选拔赛真题96】Scratch风车旋转 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch风车旋转 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 scratc…...

SQL血缘解析

Druid 作为使用率特别高的的数据库连接池工具,在具备完善的连接池管理功能外,同时Druid 的 SQL解析功能可以用来防止 SQL注入等安全风险。通过对 SQL 语句进行解析和检查,Druid 可以识别并阻止潜在的恶意 SQL 语句执行,黑名单(阻止特定的 SQL 语句执行)、白名单(仅允许特…...

Docker 部署机器学习模型

1.编写机器学习代码 &#xff08;1&#xff09;新建一个 mlmodel.py import numpy as np import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sk…...

leetcode 面试经典 150 题:无重复字符的最长子串

链接无重复字符的最长子串题序号3类型字符串解题方法滑动窗口难度中等 题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 …...

LeetCode 283. 移动零 (C++实现)

1. 题目描述 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1&#xff1a; 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 …...

基于Spring Boot的个人财务系统

一、系统背景与目的 随着全球经济的发展和人们生活水平的提高&#xff0c;个人财务管理变得越来越重要。传统的个人财务软件存在操作复杂、用户体验差、数据不安全等问题&#xff0c;无法满足用户的个性化需求。因此&#xff0c;开发一种基于Spring Boot的个人财务系统&#x…...

【计算机网络2】计算机网络的性能能指标

目录 一 、计算机网络的性能指标 二、具体介绍 1、速 率 2、带 宽 3、吞 吐 量 4、时 延 5、时延带宽积 6、往 返 时 延 7、信道利用率 一 、计算机网络的性能指标 计算机网络的性能指标就是从不同方面度量计算机网络的性能&#xff0c;有如下7个指标&#xff1a; 速…...

Axure RP9 的详细安装及Axure入门应用

文章目录 一、Axure 是什么?二、Axure 的应用场景三、Axure 安装1. 下载安装2. 汉化授权 附&#xff1a;下载链接 一、Axure 是什么? 1、Axure 是一种强大的原型设计工具&#xff0c;它可以帮助设计师和产品经理快速创建交互式的、高保真度的原型&#xff0c;并进行用户体验…...

Scala学习记录 如何打印输出

在Scala中&#xff0c;打印输出可以通过多种方式实现&#xff0c;以下是一些常见的打印输出方法&#xff1a; 1.使用printf()方法&#xff1a; 这是一种传统的C语言风格的打印方式&#xff0c;通过格式化字符串来控制输出的格式。例如&#xff0c;printf("整数&#xff1a…...

内网IP段介绍与汇总

IPV4内网段 IP地址段地址范围地址数量用途描述0.0.0.0/80.0.0.0–0.255.255.25516777216SoftwareCurrent network (only valid as source address).10.0.0.0/810.0.0.0–10.255.255.25516777216Private networkUsed for local communications within a private network.100.64…...

js常用方法之: 预览大图(uniapp原生方法封装)

方法: //预览图片 pic可传单个图片地址字符串 或 图片数组(带index) previewPic: function(pic, index) {if (!pic) return;if (index undefined) {let array [];array.push(pic);uni.previewImage({urls: array,current: array[0]});} else {uni.previewImage({urls: pic,…...

人脸生成3d模型 Era3D

从单视图图像进行3D重建是计算机视觉和图形学中的一项基本任务&#xff0c;因为它在游戏设计、虚拟现实和机器人技术中具有潜在的应用价值。早期的研究主要依赖于直接在体素上进行3D回归&#xff0c;这往往会导致过于平滑的结果&#xff0c;并且由于3D训练数据的限制&#xff0…...

「Mac畅玩鸿蒙与硬件46」UI互动应用篇23 - 自定义天气预报组件

本篇将带你实现一个自定义天气预报组件。用户可以通过选择不同城市来获取相应的天气信息&#xff0c;页面会显示当前城市的天气图标、温度及天气描述。这一功能适合用于动态展示天气信息的小型应用。 关键词 UI互动应用天气预报数据绑定动态展示状态管理 一、功能说明 自定义…...

深圳龙岗戴尔dell r730xd服务器故障维修

深圳龙岗一台DELL POWEREDGE R730XD服务器系统故障问题处理&#xff1a; 1&#xff1a;客户工厂年底产线整改&#xff0c;时不时的会意外断电&#xff0c;导致服务器也频繁停机&#xff0c; 2&#xff1a;多次异常停机后导致服务器开机后windows server系统无法正常启动了&…...

lxml提取某个外层标签里的所有文本

html如下 <div data-v-1cf6f280"" class"analysis-content">选项D错误&#xff1a;<strong>在衡量通货膨胀时&#xff0c;</strong><strong>消费者物价指数使用得最多、最普遍</strong>。 </div> 解析html文本 fro…...

【AI图像生成网站Golang】项目测试与优化

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与优化 六、项目测试与优化 在开发过程中&#xff0c;性能优化是保证项目可扩展性和用户体验的关键步骤。本文将详细介绍我如何使用一…...

使用Docker启用MySQL8.0.11

目录 一、Docker减小镜像大小的方式 1、基础镜像选择 2、减少镜像层数 3、清理无用文件和缓存 4、优化文件复制&#xff08;COPY和ADD指令&#xff09; 二、Docker镜像多阶段构建 1、什么是dockers镜像多阶段构建 1.1 概念介绍 1.2 构建过程和优势 2、怎样在Dockerfil…...

部署Mysql、镜像和容器、常见命令

目录 部署Mysql 镜像和容器 常见命令 部署Mysql 可以有多个容器 docker run -d \--name mysql \-p 3306:3306 \-e TZAsia/Shanghai \-e MYSQL_ROOT_PASSWORD123 \mysql docker run -d \--name mysql2 \-p 3307:3307 \-e TZAsia/Shanghai \-e MYSQL_ROOT_PASSWORD123 \mys…...

Windows部署Docker及PostgreSQL数据库相关操作

一、Windows安装Docker 1.wsl安装 以管理员身份启动命令行&#xff0c;运行&#xff1a;wsl --install&#xff1b; 安装结束后&#xff0c;重启电脑&#xff0c;以管理员身份启动命令行&#xff0c;运行&#xff1a;wsl --install -d Ubuntu&#xff1b; 中间需要输入用户名…...

Halcon例程代码解读:安全环检测(附源码|图像下载链接)

安全环检测核心思路与代码详解 项目目标 本项目的目标是检测图像中的安全环位置和方向。通过形状匹配技术&#xff0c;从一张模型图像中提取安全环的特征&#xff0c;并在后续图像中识别多个实例&#xff0c;完成检测和方向标定。 实现思路 安全环检测分为以下核心步骤&…...

Unity3D用正则判断身份证号或邮箱

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、正则判断邮箱格式👉二、正则判断身份证号👉壁纸分享👉总结👉前言 C#正则表达式(Regex)是一种用来匹配字符串模式的强大工具。在C#中,可以使用System.Text.RegularExpressions命名空间下的Regex类来处…...

PostgreSQL表达式的类型

PostgreSQL表达式是数据库查询中非常重要的组成部分&#xff0c;它们由一个或多个值、运算符和PostgreSQL函数组合而成&#xff0c;用于计算出一个单一的结果。这些表达式类似于公式&#xff0c;可以用查询语言编写&#xff0c;并用于查询数据库中的特定数据集。 PostgreSQL表…...