thingsboard 单机性能参考

实例类型实例详细信息数据库类型设备API设备数量消息延迟每秒消息上限
t2.micro1 vCPUs for a 2h 24m burst, 1GBPostgreSQLMQTT5001000 ms~450/sec
t2.medium2 vCPUs for a 4h 48m burst, 4GBPostgreSQLMQTT9001000 ms~780/sec
c5.large2 vCPUs , 4GBPostgreSQLMQTT11001000 ms~1020/sec
m5.xlarge4 vCPUs, 16GB, 150GB SSD mountedCassandraMQTT35001000 ms~3500/sec
m5.xlarge4 vCPUs, 16GB, 150GB SSD mountedCassandraHTTP20001000 ms~950/sec

参考:http://www.ithingsboard.com/docs/reference/performance-aws-instances/

postgresql 时区设置

session 级

set time zone 'PRC';

用户级

alter role <postgres|all> set timezone='PRC';

数据库级

alter database <dbname> set timezone='UTC';

全局配置

在配置文件 postgresql.conf 中,找到 timezone ,设为 'PRC',重载服务 pg_ctl reload

manjaro 安装 php-swoole 扩展的方法

pacman/yay 安装

sudo pacman -S aur/php-swoole
#或者
yay -S aur/php-swoole

pecl 安装

yay -S php-pear
pecl install swoole

通过 PECL 安装 Swoole 时,在安装过程中它会询问是否要启用某些功能,这也可以在运行安装之前提供,例如:

pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes"' swoole

#或者
pecl install --configureoptions 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes"' swoole

浏览器远程调试

确保远程页面的主机可以被访问(例如在同一内网,或USB连接),打开 edge 浏览器,访问 edge://inspect/#devices ,找到要调试的页面,点击 inspect 即可远程调试。

chrome 浏览器访问 chrome://inspect/#devices

Rancher 部署流程

基本配置

硬件资源

  • Rancher 2v6G
  • Worker 2v4G

至少两台服务器,1台 Rancher 和 1台 Workder,条件允许 Worker 应该多于1台。

安装 centos7

两台服务器上的统一配置

基础配置

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl disable --now firewalld

安装 docker

curl -fSL# https://get.docker.com | bash -s docker --mirror Aliyun
yum install -y -q docker-compose
systemctl enable --now docker

重启服务器。

Rancher 部署

设置计算机名:

hostnamectl set-hostname rancher

添加文件 /home/docker/rancher/docker-compose.yml

version: '3.5'
services:
  rancher:
    image: rancher/rancher:v2.7-head
    container_name: rancher
    restart: unless-stopped
    privileged: true
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./rancher:/var/lib/rancher

启动服务:

docker-compose up -d

登录及首次配置

浏览器打开 rancher 的 IP,等待/刷新,进入欢迎界面。

欢迎界面左下角切换中文语言。

按照欢迎界面的提示找到登录密码并登录。

设置新密码,和服务器 URL,不要允许统计信息。

Worker 部署

导航选择「用户&认证」,「创建」,添加新用户 test。

导航选择「集群管理」,「创建」,选择「使用现有节点并使用 RKE 创建集群」-「自定义」,「集群名称」按需填写,「Member Roles」(成员角色)添加用户「test」,角色「Owner」,「下一步」。

主机的角色选择所有角色,在 RKE Master 粘贴脚本执行。

主机的角色选择 Worker 角色,在 RKE Node1 粘贴脚本执行。

导航第一个菜单选择 test 切换用户,等待部署完成。

搭建 Wireguard 服务并实现异地组网

CentOS7 需要安装内核模块补丁

CentOS7 安装 Wireguard 前需要安装 wireGuard 模块,官方给出来了3种安装方式,任选一种即可:

系统:centos 7.x
内核要求:> 3.10 (uname -r)

### Method 1: a signed module is available as built-in to CentOS's kernel-plus:
$ sudo yum install yum-utils epel-release
$ sudo yum-config-manager --setopt=centosplus.includepkgs=kernel-plus --enablerepo=centosplus --save
$ sudo sed -e 's/^DEFAULTKERNEL=kernel$/DEFAULTKERNEL=kernel-plus/' -i /etc/sysconfig/kernel
$ sudo yum install kernel-plus wireguard-tools
$ sudo reboot
### Method 2: users wishing to stick with the standard kernel may use ELRepo's pre-built module:
$ sudo yum install epel-release elrepo-release
$ sudo yum install yum-plugin-elrepo
$ sudo yum install kmod-wireguard wireguard-tools
### Method 3: users running non-standard kernels may wish to use the DKMS package instead:
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ sudo yum install wireguard-dkms wireguard-tools

安装完成后重启服务器。

利用 docker 安装 WireGuard-easy

version: '3.5'
services:
  wireguard:
    image: weejewel/wg-easy
    restart: unless-stopped
    ports:
      - 51820:51820/udp
      - 51821:51821/tcp
    environment:
      - WG_HOST=wg.host.com
      - PASSWORD=password
      # - WG_PORT=51820
      # - WG_DEFAULT_ADDRESS=10.8.0.x
      - WG_DEFAULT_DNS=114.114.114.114
      # - WG_MTU=1420
      - WG_ALLOWED_IPS=10.8.0.0/24
      - WG_PERSISTENT_KEEPALIVE=30
      # - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt
      # - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt
      # - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt
      # - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt
    volumes:
      - ./data:/etc/wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

# 参考:https://raw.githubusercontent.com/WeeJeWel/wg-easy/master/docker-compose.yml

将以上内容保存为 docker-compose.yml 文件,并执行 docker-compose up -d 启动服务。在浏览器中输入服务器地址(内网端口 51821 )登录管理界面。

注意:

  • 通常服务位于路由或防火墙后面,WG_PORT 是外网访问端口(与 ports 可能不同,视路由映射而定),WG_HOST 是外网访问地址(可以是域名/IP,也可以是DDNS,但注意不会自动更新解析)。
  • WG_ALLOWED_IPS 如果设为 0.0.0.0 ,那客户端的所有流量都会走 VPN,所以应该仅设置需要代理的 IP 域。

异地组网

ubuntu 安装wireguard

sudo apt-get install -y openresolv wireguard

从 wireguard-easy 中添加一个 client ,并下载配置,将内容添加到组网电脑的此文件中: /etc/wireguard/wg0.conf

启动网卡:sudo wg-quick up wg0

查看状态:sudo wg show wg0ip a show wg0

自动启动:sudo systemctl enable wg-quick@wg0

激活和保活

  • wg0 创建后不会主动连接,意味着服务器不知道有主机上线,需要向服务器发送数据请求才行。可行的方法是,编辑 /etc/wireguard/wg0.conf ,在 [Interface] 中添加以下行:PostUp = ping -c 1 10.8.0.1 。此参数不能自动生成,需要手动添加。
  • 超过10分钟没有数据交互,连接会被断开,同样编辑 /etc/wireguard/wg0.conf,在 [Perer] 中添加以下行: PersistentKeepalive = 30 。在部署 wirewuard 服务器时添加 WG_PERSISTENT_KEEPALIVE=30 参数,可以在下载的配置中直接附带此参数。

windows 禁用缩略图缓存 Thumbs.db

  1. 开始 – 运行 – gpedit.msc
  2. 左侧依次展开:用户配置—管理模板—Windows组件—Windows资源管理器
  3. 找到 关闭隐藏的 thumbs.db 文件中的缩略图缓存 并启用