Author: admin

阿里云服务器带宽计费模式按固定带宽和使用流量哪个更省钱?

 

阿里云服务器带宽计费模式按固定带宽和按使用流量如何选择?按固定带宽适合对网络需求比较稳定的用户,按使用流量适合网络带宽需求变化较大的场景,带宽计费模式哪个更省钱?要根据实际流量选择合适带宽计费模式,阿里云百科来详细说下阿里云服务器带宽计费模式选择方法:

阿里云服务器带宽计费模式选择攻略

带宽计费模式分为:“按固定带宽”和“按使用流量”两种,按固定带宽计费是你先指定云服务器公网出方向固定的带宽值,比如购买10M带宽,你需要先支付费用,阿里云会分配给你固定10M带宽,且带宽是独享的,不管你的带宽是否使用,哪怕购买后闲置,也需要支付带宽费用。按使用流量计费是先使用后付费,按照云服务器公网出方向产生的实际流量计费,一般1GB流量价格是0.8元,按流量计费如果后续使用过程中,没有产生流量,就可以不收费。

阿里云服务器带宽计费模式

阿里云服务器带宽计费模式

按固定带宽计费适合对网络带宽要求比较稳定的客户,平均下来费用较低;带宽按使用流量计费适合对网络带宽需求变化较大的使用场景,如平时带宽使用较低但间歇性的出现网络访问高峰的场景,比如抢红包、突发秒杀活动类使用场景,按流量是后付费模式,以GB为单位,按小时支付流量费用。

这样说,大家可能不会太理解,阿里云百科就来举几个极端的例子,帮助大家更好的理解按固定带宽和按使用流量计费模式,继而更好地选择适合自己的带宽计费模式,更省钱。

按固定带宽和按使用流量举例说明

假设阿里云百科有个秒杀APP,使用的是阿里云北京地域的云服务器。这个APP平时没什么流量,一般一个月会举办一次秒杀活动,秒杀活动时长2个小时。每到秒杀活动,由于参与秒杀的用户比较多,在活动高峰时段需要100M的公网带宽。

在这个使用场景下,如果阿里云百科选择按固定带宽计费,5M及5M以下带宽单价是23元/月,达到6M及6M以上的带宽单价按照每兆80元/月的价格收取,100M带宽使用阿里云价格计算器计算后一个月价格7725元,如下图:

阿里云服务器按固定带宽价格

阿里云服务器按固定带宽价格

如果阿里云百科选择按使用流量计费呢,100M带宽下载速度峰值是12.5M/秒,阿里云百科来计算一下活动期间2个小时带宽跑满的情况下,会产生多少流量。1个小时3600秒,2个小时7200秒,每秒产生12.5M流量,2小时流量为12.5*7200=90000M,大约是88G流量。按使用流量计费,1GB流量价格是0.8元,那么88G流量一共是70元左右。

关于阿里云服务器带宽价格参考:阿里云服务器带宽收费价格表(固定带宽和按流量计费)

所以,这种平时对网络带宽需求量较小,突发高流量的使用场景,带宽选择按使用流量计费模式更划算,为了防止突然爆发的流量产生较高的费用,用户可以指定带宽峰值避免产生高额流量费用。对于长时间使用且网络流量较平稳的应用,可以选择按固定带宽计费。

更多关于阿里云服务器带宽计费模式说明及选择,可以参考官方文档:

参考文档

官方文档:公网带宽计费详解 - 阿里云

 

linux系统下的微信安装(ubuntu20.04)

前言

今天突然了解到去年年底的一则消息:银河麒麟桌面操作系统V10,原生微信2.1.1版本终于推出。
于是我去搜了一下”银河麒麟“,发现好像跟ubuntu的官方中文版——优麒麟有点关系。我看优麒麟官网介绍,发现它的应用商店可以安装很多国产软件(比如搜狗拼音、迅雷、网易云、qq音乐等),而且也是可以安装这个原生微信的。鼓捣了一下,在原生ubuntu20.04上成功安装了原生微信。记录一下我的安装步骤。


安装步骤

从优麒麟的镜像源安装原生微信

新建文件sudo vi /etc/apt/sources.list.d/software.list

添加如下内容:

 deb http://archive.ubuntukylin.com/ubuntukylin focal-partner main

提示:网上查阅资料说理论上Ubuntu 20.10也可以,需要将上述文字中的“focal”改成“groovy”。但是Ubuntu 18.04不行

添加apt key。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 56583E647FFA7DE7

更新列表。

sudo apt update

安装微信

sudo apt install weixin

安装完成
在这里插入图片描述

彻底弄懂 Javascript 模块导入导出

笔者开始学习 Javascript 的时候,对模块不太懂,不知道怎么导入模块,导出模块,就胡乱一通试

比如 import xx from 'test.js' 不起作用,就加个括号 import {xx} from 'test.js'

反正总是靠蒙,总有一种写法是对的,其实还是没有理解,还是不懂

尤其是在当初写 www.helloworld.net 网站的时候,一遇到这种问题,就懵逼了,尤其是引入第三方库的时候

这种情况下更多,此篇文章也是为了怕以后忘记,自查用的,也希望能帮助更多的朋友,此篇文章只是针对 ES6 的模块相关知识…

使用workerman加速任意项目

众所周知,workerman是基于php cli的,由于php cli模式下无法使用php自带的header、sesion、cookie等函数,这导致将传统的php项目无法直接在workerman容器下直接运行。

我一度以为让传统业务在workerman中运行,就必须更改框架甚至业务代码以适配workerman,直到joanhey发了一个issue,打破了我的认知。

他们发布了一个名叫AdapterMan的项目,它可以做到不更改传统框架代码的情况下让你的传统php项目放到workerman中正常运行,并且他们公司已经在生产环境用了2年。

注意,是零代码改动直接让laravel、lumen、Slim等框架的项目在workerman上运行。

目前他们已经在laravel、lumen、Slim、Symfony、CakePHP、Yii2、KumbiaPHP 等做了初步压力测试,性能有很大的提升。

以下是压测结果

Laravel 8

Fw Plaintext Json Single query Multiple query Updates Fortunes
Laravel 14,799 14,770 9,263 3,247 1,452 8,354
Laravel Roadrunner 482 478 474
    

图解 TCP、UDP,流量控制,拥塞控制,一次看懂

来源:网络

图片

一、TCP

  • TCP首部
  • 流量控制
  • 拥塞控制
  • 三次握手,四次挥手
  • tcp 怎样保证数据正确性?

流量控制是为了让接收方能来得及接收,而拥塞控制是为了降低整个网络的拥塞程度

1、TCP首部

图片

源端口号
目标端口号
32位序列号
32位确认号
首部长度(单位为4字节,默认为5,即20字节)
保留位(6位)
6个控制位(SYN、ACK、FIN、PUSH、URG、RST) 
SYN:同步序号位,TCP建立连接时要将这个值设为1
ACK:为1表示确认号 
FIN:发送端完成位,提出断开连接的一方把FIN置为1表示要断开连接 
PUSH:急迫位,缓存区将满,立刻传输速度 
RST:重置位,连接断了重新连接 
URG:紧急信号
16位窗口大小:接收窗口大小,流量控制使用,如果窗口大小为0,可以发送窗口探测
16位校验和:校验和用来做差错控制,TCP校验和的计算包括TCP首部、数据和其它填充字节。在发送TCP数据段时,由发送端计算校验和,当到达目的地时又进行一次检验和计算。如果两次校验和一致,说明数据是正确的,否则将认为数据被破坏,接收端将丢弃该数据
16位紧急指针:仅在URG控制位为 1 时有效。表示紧急数据的末尾在 TCP 数据部分中的位置。通常在暂时中断通信时使用(比如输入 Ctrl C)

2、流量控制

图片

流量控制,就是让发送方的发送速率不要太快,要让接收方来得及接收

利用滑动窗口机制可以很方便地在tcp连接上实现对发送方的流量控制

TCP接收方利用自己的接收窗口的大小来限制发送方发送窗口的大小

重传计时器

TCP发送方收到接收方的零窗口通知后,应启动持续计时器。持续计时器超时后,向接收方发送零窗口探测报文

即使接收窗口为0,接收方也会接收:零窗口探测报文段、确认报文段、携带紧急数据的报文段

TCP发送方的发送窗口大小

    

Linux 性能优化

性能优化

性能指标

高并发和响应快对应着性能优化的两个核心指标:吞吐延时

图片

  • 应用负载角度:直接影响了产品终端的用户体验
  • 系统资源角度:资源使用率、饱和度等

性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。 性能分析实际上就是找出应用或系统的瓶颈,设法去避免或缓解它们。

  • 选择指标评估应用程序和系统性能
  • 为应用程序和系统设置性能目标
  • 进行性能基准测试
  • 性能分析定位瓶颈
  • 性能监控和告警

对于不同的性能问题要选取不同的性能分析工具。 下面是常用的Linux Performance Tools以及对应分析的性能问题类型。

图片

到底应该怎么理解“平均负载”

平均负载:单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。它和我们传统意义上理解的CPU使用率并没有直接关系。

其中不可中断进程是正处于内核态关键流程中的进程(如常见的等待设备的I/O响应)。不可中断状态实际上是系统对进程和硬件设备的一种保护机制。

平均负载多少时合理

实际生产环境中将系统的平均负载监控起来,根据历史数据判断负载的变化趋势。当负载存在明显升高趋势时,及时进行分析和调查。 当然也可以当设置阈值(如当平均负载高于CPU数量的70%时)

现实工作中我们会经常混淆平均负载和CPU使用率的概念,其实两者并不完全对等:

  • CPU密集型进程,大量CPU使用会导致平均负载升高,此时两者一致
  • I/O密集型进程,等待I/O也会导致平均负载升高,此时CPU使用率并不一定高
  • 大量等待CPU的进程调度会导致平均负载升高,此时CPU使用率也会比较高

平均负载高时可能是CPU密集型进程导致,也可能是I/O繁忙导致。具体分析时可以结合mpstat/pidstat工具辅助分析负载来源

CPU

CPU上下文切换(上)

CPU上下文切换,就是把前一个任务的CPU上下文(CPU寄存器和PC)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的位置,运行新任务。其中,保存下来的上下文会存储在系统内核中,待任务重新调度执行时再加载,保证原来的任务状态不受影响。

按照任务类型,CPU上下文切换分为:

        

Hyperf 3.0,PHP 新时代

回顾

在过去的一年半时间里,Hyperf 2.2 共发布了 35 个小版本,使 Hyperf 达到了一个前所未有的高度,这里也获得了一些不错的数据反馈。

Hyperf 在 GitHub 和 Gitee 上的关注度也得到了显著提升,分别获得了 4.9k 和 791 个 star,整体关注度增长也很稳定。

Hyperf 框架的安装量也达到了 90万次,每天都有约 1300次的安装,这也表明了 Hyperf 已经广泛应用于相关行业中并支撑了大量的系统运行。

Hyperf 组织下的有效 repo 更是达到了约 140个(去除掉 Archive 项目后),维护工作量空前巨大,但迭代仍然高频。

2023 年的 PHP

从 20 世纪 90 年代中期作为个人项目起步,PHP 已经发展成为最流行的 Web 开发语言之一,为从小型博客到大型企业应用程序的一切提供支持。

这种语言在近三十年的时间里经历了惊人的转变。即使在过去 10 年内,PHP 也以我们无法想象的方式发生了变化。

每年,我都会写一篇关于 PHP 现状的文章,回顾和展望未来。让我们开始!