nginx下载地址:http://nginx.org/en/download.html linux安装 源码方式安装 1. 安装依赖(选择缺少的依赖进行安装) yum -y install autoconf automake make # 安装mkae编辑安装及依赖包 yum -y install gcc gcc-c++ # 安装gcc环境 yum -y install pcre pcre-devel # 安装PCRE库,用于解析正则表达式 yum -y install zlib zlib-devel # 安装zlib压缩和解压缩依赖 yum install -y openssl openssl-devel # SSL安全的加密的套接字协议层,用于HTTP安全传输
Google 20年发的时序库的paper
首先看看系统架构,
设计时,首先考虑CAP的balance问题,向Spanner这样的高一致性方案,明显不适合监控系统,所以Monarch牺牲一致性来保证实时性和可用性
Monarch’s design is determined by its primary usage for monitoring and alerting. First, Monarch readily trades consistency for high availability and partition tolerance [21, 8, 9]. Writing to or reading from a strongly consistent database like Spanner [13] may block for a long time;that is unacceptable for Monarch because it would increase mean-time-to-detection and mean-time-to-mitigation for potential outages. To promptly deliver alerts, Monarch must serve the most recent data in a timely fashion; for that, Monarch drops delayed writes and returns partial data for queries if necessary.
Linux 常用系统性能测试命令 此文档基于CentOS7编写。
一、CPU 1.top命令 [root@localhost ~]# top 第1行:系统时间、运行时间、登录终端数、系统负载(3个数值分别为1分钟、5分钟、15分钟内的平均值)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“99.9 id”意味着有99.9%的CPU处理器资源处于空闲。
第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
2.mpstat 用来查看CPU负载高的原因,mpstat命令写入每个可用处理器的标准输出活动,处理器0是第一个。还报告了所有处理器的全球平均活动。mpstat命令可以在SMP和UP机器上使用,但在后者中,只会打印全局平均活动。如果未选择任何活动,则默认报告为CPU利用率。
# 每1秒统计一次,统计三次。 [root@k8s ~]# mpstat -P ALL 1 3 %user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)100 %nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)100 %sys 在internal时间段里,内核时间(%) (system/total)100 %iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)100 %irq 在internal时间段里,硬中断时间(%) (irq/total)100 %soft 在internal时间段里,软中断时间(%) (softirq/total)100 %idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)100
机器一共有四个核心,所以每次显示的是4条记录,这里的输出主要看最后的Average数值。这是在没有负载的情况下机器的负载情况。
指示要报告其统计信息的处理器编号。cpu是处理器编号。请注意,处理器0是第一个处理器。ON关键字表示要为每个联机处理器报告统计信息,而ALL关键字表示要为所有处理器报告统计信息。
测试一:增加系统IO [root@k8s ~]# stress --io 1000 --timeout 600 stress: info: [84278] dispatching hogs: 0 cpu, 1000 io, 0 vm, 0 hdd 这里可以看出系统在高IO的情况下,CPU的内核态占用很高,最后的空闲占的很少。
感觉会有用,先记录下来,如果大家看了有帮助,深感荣幸,若不幸点开了,万分抱歉。 Instead of predicting the next word in a sequence, BERT makes use of a novel technique called Masked LM (MLM): it randomly masks words in the sentence and then it tries to predict them. Masking means that the model looks in both directions and it uses the full context of the sentence, both left and right surroundings, in order to predict the masked word. Unlike the previous language models, it takes both the previous and next tokens into account at the same time.
原文:https://www.cnblogs.com/liuys635/p/15077965.html
目标 :
单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群
前提条件:
1.centos版本在7.3 以上
2.安装git
3.安装docker Docker version 18.06.1-ce, build e68fc7a
4.安装docker-compose docker-compose version 1.22.0, build f46880fe
开始安装
1.下载 tidb-docker-compose
git clone https://github.com/pingcap/tidb-docker-compose.git
2.会在本地创建一个tidb-docker-compose 目录
3.进入该目录执行命令
获取最新的 docker 镜像文件。
docker-compose pull Pulling pd0 ... done
Pulling pd1 ... donePulling pd2 ... donePulling tikv0 ... donePulling tikv1 ... donePulling tikv2 ... donePulling tidb ... donePulling tispark-master ... donePulling tispark-slave0 ... donePulling tidb-vision ... donePulling pushgateway .
转自:https://www.cnblogs.com/joy2code/archive/2013/06/03/3114826.html
用虚拟并口解决向USB条码打印机发送ZPL指令的解决方案
上周遇到了一个问题,是关于条码打印的。我们的OA系统是几年前开发的,当时用到了条码打印,解决方案是在客户端用JS脚本直接调用文件系统组件向并口LPT1发送ZPL指令。
之所以这么处理的好处是,客户端无需安装打印机驱动,只要接好并口数据线即可。但随着时间的推移,计算机的更新换代,新机型越来越不待见LPT并口了。直到上周,某办公室更新了新的计算机主机,已然没有并口了,结果条码打印就不起作用了。于是作为系统技术支持的我过去诊断了一番,发现情况的确不容乐观。主机根本没有并口,而且外接一个独立的并口卡似乎不符合勤俭节约的优良传统,当然修改JS代码也不是很好的方案,由于web权限的限制,对本地设备的访问是不安全的,如何检测设备也是个问题,最后那就看看能不能虚拟一个并口来用了。
经过一番查找,终于发现,解决方案就有现成的,而且也用不到第三方软件,windows自身就能搞定。原理很简单就是把网络打印机接口映射成本地LPT端口即可。操作方法:1、安装打印机的USB驱动,并确保打印机正常工作;2、将打印机设置为共享,共享名要用英文;3、利用net use指令把网络打印机映射到本地LPT1端口。
假设本机的IP是192.168.1.100,打印机共享名是PRINTER,那么具体命令行是这样:
net use LPT1 \\192.168.1.100\PRINTER /PERSISTENT:YES
经过如上设置,这个虚拟并口的映射会始终存在,除非重装系统或者用指令删除,在没有变动OA系统代码的情况下,这个特殊问题最终得以解决。
第1章 绪论 1.1 图灵模型 1.1.1 数据处理器 把计算机定义成一个数据处理器
1.1.2 可编程数据处理器 添加了一个元素:程序 程序是用来告诉计算机对数据进行处理的指令集合
相同的程序,不同输入数据,输出不同 相同的输入数据,不同的程序,输出不同 相同的输入数据,相同的程序,相同的输出 1.1.3 通用图灵机 1.2 冯诺依曼模型 1.2.1 4个系统 存储器 算术逻辑单元(ALU) 控制单元 输入/输出单元 1.2.2 存储程序概念 程序必须存储在内存中
1.2.3 指令的顺序执行 1.3 计算机组成部分 1.3.1 计算机硬件 1.3.2 数据 1.存储数据 最好的数据存储方式应该是电子信号 2.组织数据 1.3.3 计算机软件 1、程序必须是存储的 2. 指令的序列 3.算法 4.语言 5.软件工程 6.操作系统 1.4 历史 1.4.1 机械计算机器(1930年以前) 1.4.2 电子计算机的诞生(1930年~1950年) 1.4.3 计算机的诞生(1850年至今) 1.第一代计算机(大约1950~1959) 商用计算机
2. 第二代计算机(大约1959~1965) 使用晶体管代替真空管
3.第三代计算机 集成电路
4. 第四代计算机(1957~1985) 出现了微型计算机
Git 版本控制 版本迭代,新版本,版本管理器,多人开发必须使用版本控制
版本控制(Revision Control)是一种在开发过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便回复以前的版本的软件工程技术
实现跨区域多人协同开发 追踪和记载一个文件或多个文件的历史记录 组长和保护源代码和文档 统计工作量 并行开发、提高开发效率 跟踪记录整个软件的开发过程 减轻开发人员的负担,节省时间,降低人为错误 常见版本控制器 Git(最流行) SVN CVS VSS TFS Visual Studio Online 版本控制分类 本地版本控制(RCS) 记录每次更新,可以对每个版本做一个快照,或记录补丁文件,适合个人使用,如RCS
集中版本控制(SVN) 版本数据保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。
所有版本都存在服务器上,用户本地只要自己以前所同步的版本,如果不联网,用户看不到历史版本,也无法切换版本验证问题,或在不同分支工作。
所有数据保存在单一服务器上,由服务器损坏丢失数据的分线,需要定期备份。
分布式版本控制(Git) 每个人都拥有全部的代码,可能具有一些安全隐患
所有版本信息仓库全同步到本地的每个用户,可以在本地查看所有版本历史,可以离线在本地提交,在联网时push到相应服务器或用户处。只有一个用户的设备安全就能可以恢复所有数据,不会因为服务器损坏或网络问题不能工作,但增加了本地存储空间的占用。
Git与SVN的主要区别 SVN:集中式版本控制系统。版本库放在中央服务器,工作时需要从中央服务器得到最新版本,使用后再推送到中央服务。联网才能工作,对网络带宽要求高 Git:分布式版本控制系统。没由中央服务器,工作时不需要联网,仅需要互相推送修改的内容就可使用 Git是目前最先进的分布式版本控制器
Git历史 Linux之父开发,免费,开源
Git环境配置 镜像下载 无脑安装 三个命令:
Git Bash: Unix和Linux风格的命令行,使用最多,推荐最多 Git CMD: Windows风格的命令行 Git GUI: 图形界面的Git,不建议初学者使用 Linux基本命令 cd: 修改目录
cd .. : 退回至上一个目录,直接cd进入默认目录(注意cd和.
介绍: MyBatis 是一款优秀的持久层框架,原名Ibatis,2013年改为Mybatis。 支持自定义 SQL、存储过程以及高级映射。 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 mybatis功能: 注册驱动 创建jdbc中使用Connection Statement ResultSet 执行sql语句 处理 把记录中的数据转为Java对象 同事还能把java对象放入List集合 关闭资源 实现sql语句和Java代码的解耦合 jdbc优缺点: 优点: 1、代码直观容易理解 缺点: 1、操作繁琐 需要创建很多对象Connection Statement ResultSet 注册驱动 执行sql语句 把ResultSet 转为 Student List集合 关闭资源 2、 sql语句与业务逻辑代码混淆在一起
当前页面: <input id=bankNo v-model=bankNo name=bankNo></input> <button @click=goPage()>跳转页面获取数据</button> goPage:function(){ window.open(http://test.biz.sinosure.com.cn/biz/CreditBuyer.html) } 跳转到第二个页面进行选择:
<div> <span>这是像要的数据:</span> <div v-model=data></div> </div> <button @click=select()>选择</button> select:function(){ // 选择后数据传递给第一个页面 let parwindow = self.opener // 给父页面中的元素进行赋值 parwindow.document.getElementById(bankNo).value = this.data } 此时第一个页面中id为bankNo的input中的已经有值了,但是由于是操作DOM修改的元素内容,所以该input上面v-model中的bankNo还没有值,所以第一个页面需要监听元素变化以后给v-model中的元素赋值
第一个页面中跳转的时候进行监听:
goPage:function(){ window.open(http://test.biz.sinosure.com.cn/biz/CreditBuyer.html) var simTime = setInterval(function(){ let str = document.getElementById(bankNo).value if(str){ this.bankNo = str // v-model中bankNo有值以后,清除定时器 clearInterval(simTime) } }) }