Author Archives: guoguo

containerd启动容器报错

报错信息 系统 原因 解决

Posted in 小技巧 | Leave a comment

vmware虚拟机配置共享

环境: 第一步,升级系统内核,目前最新内核:kernel-ml-6.1.12-1.el7.elrepo.x86_64.rpm 注意:不需要安装vmware-tools,vmware-tools不兼容kernel,无法配置目录共享

Posted in 小技巧 | Leave a comment

SSH登录Vmware虚拟机Linux服务器慢问题

现象: 每次通过ssh登录机器都特别慢,大约30秒,甚至更长 环境: OS:CentOS-7-x86_64-Minimal-2009.iso 虚拟机平台:VMware® Workstation 16 Pro 虚拟机平台版本:16.2.3 build-19376536 解决:

Posted in 小技巧 | Leave a comment

移动终端网络接入

1.1 终端接入网络 1.1.1 移动终端接入网络有如下的几种情况 终端设备在属地,终端设备通过基站,接入属地的网络 终端设备在国内漫游时,移动设备会漫游连接到当地的网络,联通和电信则需要漫游回属地的网络 终端设备在国外漫游时,需要漫游回属地的网络 1.1.2 基站接入分析 移动终端通过基站接入移动运营商网络,终端与基站之间是数据链路层,不涉及网络层(IP)和传输层(TCP),终端设备的IP地址是由运营商分配的,在切换基站时一般不会引起IP地址的变化。 有以下几种情况: 当设备进行重启、飞行模式切换等时,设备会重新发起接入,这时IP地址会发生改变 设备在同一区域内切换基站的过程中,如果没有发生断网情况下,即没有重新接入,IP地址是不会变化的 设备在区域间切换基站,比如联通设备从北京到河北,接入由北京联通变成河北联通,IP地址会发生变化 终端设备切换基站一般情况下可在50ms~200ms完成,TCP是基于连接的协议,连接状态由状态机来维护,连接完毕后,双方都会处于established状态,它们之间的连接由各自的IP和TCP的端口唯一标识,即使这个连接没有任何数据,但仍是保持连接状态。TCP的KeepAlive机制用于检测连接死活,一般时间为 7200 s,失败后重试 10 次,每次超时时间 75 s,以释放无效链接。这个时间比切换基站时间要大的多,因此TCP通道在切换基站时,其IP地址一般没有变化,所以基于IP和端口的已建立的TCP连接不会失效。 1.1.3 DNS解析 当前移动 DNS 的现状: 运营商 LocalDNS 出口根据权威 DNS 目标 IP 地址进行 NAT,或将解析请求转发到其他DNS 服务器,导致权威 DNS 无法正确识别运营商的 LocalDNS IP,引发域名解析错误、流量跨网。 域名被劫持的后果:网站无法访问(无法连接服务器)、访问到钓鱼网站等。 … Continue reading

Posted in 未分类 | Leave a comment

k8s使用

len连接集群报错 解决方法:~/.kube/config 中添加 insecure-skip-tls-verify: true 硬件架构不兼容报错 原因 硬件架构不兼容,arm、amd架构下编译的镜像可能不互通解决:针对不同架构创建不同的镜像,或创建跨架构的镜像 shell执行不兼容,基于 bash 写的脚本在不同的 shell 解释器存在不兼容的情况,甚至有些 Linux 发行版没有 bash,或者默认的 shell 解释器不是 bash解决:脚本前指定所需的解释器,#!/bin/bash 脚本换行符,windows下换行符与类*Unix的不同解决:CRLF 替换为 LF 创建指定架构的镜像 注:docker buildx 单个平台上实现跨CPU架构的镜像编译 拉取指定架构的镜像 先修改docker服务加参数 –experimental=true 拉取的时候指定平台参数,如用docker pull –platform arm64 xxhub/xxx:v1 用 docker inspect xxhub/xxx:v1 查看镜像是否指定平台架构的 上传本地镜像到镜像库 … Continue reading

Posted in 小技巧 | Leave a comment

用detectron2做识别

config.yaml

Posted in 未分类 | Leave a comment

多线程问题

多线程性能问题 线程调度 锁竟争、IO读写等 线程协作 避免数据错乱(禁止编译器和CPU的重排序优化)同步数据(工作内存flush到主存,再refresh到其它线程工作内存) 线程池优点 创建线程开销 系统开销(任务比较简单的话,有可能使创建和销毁用资源比线程执行本身更大)、占用一定内存等资源,上下文切换,稳定性,垃圾回收压力 线程池好处 队列 阻塞队列 BlockingQueue 通常使用RenntrantLock以及它的Condition来实现 阻塞方法: 抛出异常方法: 返回结果,不抛出异常 非阻塞队列 ConcurrentLinkedQueue 内部使用CAS非阻塞算法+重试实现———->不需要阻塞,并且并发不是特别剧烈的场景 原子类 Atomic+基本类型 AtomicInteger AtomicLong AtomicBoolean AtomicArray+基础类型 AtomicIntegerArray AtomicLongArray AtomicReferenceArray Atomic+?+Reference AtomicReference AtomicStampedReference:添加了时间戳,解决了ABA问题 AtomicMarkableReference:多了一个绑定的Boolen值,可用于表示此对象已删除的场景 Atoimc+?+FieldUpdater AtomicIntegerFieldUpdater AtomicLongFieldUpdater AtomicReferenceFieldUpdater

Posted in Thread | Leave a comment

Visual Studio Code调试代码配置

npm 部署程序 Python程序

Posted in 小技巧 | Leave a comment

博客网站搭建

最近把网站迁移到国内的云服务厂商上,之前几次迁移部署都是采用编译安装的方式,非常的不方便,此次采用的是docker方式搭建环境的配置,前端也不再采用nginx,采用了能够自动生成和替换证书的ca#ddy来实现的。 安装workpress 安装docker和docker-compose 编写wordpress的docker-compose.yml文件 本地需要创建mysql和wordpress的目录,docker会把本地创建的目录挂载到docker镜像中,这样mysql的数据和wordpress的配置才会在docker销毁时不会丢失。 启动docker镜像 然后临时打云厂商的防火墙的8000端口,在本地看是docker是否能到安装配置页面,如果可以正常打开,说明wordpress已经安装配置完成,可以使用 docker-compose up -d 转到后台执行,我们现在需要把云厂商的防火墙关闭。 安装配置ca#ddy 编写执行脚本 编写Ca#ddy的配置文件 预创建目录 执行脚本启动服务器,服务启动后我们在本地机器上可以通过配置hosts的方式,连接上去,看是否能打开wordpress的安装页面。 配置证书 我们使用cloudflare的证书,需要先到其官方网站上注册 https://dash.cloudflare.com/login 账号。 接下来我们需要在网站上添加我们的网站 然后到自己的域名服务商修改域名服务器为cloudflare的,等cloudflare检测通过 接下来需要拿到我们的api key,点击cloudflare右上角 “我的个人资料” – “API令牌“ 配置ca#ddy 在服务器 caddy/conf 文件夹下编写文件 caddy.service 文件内容为: 接下来重启ca#ddy 此时用chrome打开网站,查看地址栏左侧是否提示锁的图标,如果不是也不用着急,有可能是域名解析还没有完全切换到新的域名服务器,这需要一定的时间。

Posted in 未分类 | Leave a comment

redis数据结构

数据结构在新版本的Redis中做了优化

Posted in 未分类 | Leave a comment