KVM 的-nographic与-display选项

KVM 的-nographic与-display选项 KVM的-nographic与-display选项 http://openwares.net/2014/03/10/kvm_nographic_display/ KVM的-nographic与-display选项& http://openwares.net/2014/03/10/kvm_nographic_display/embed/#?secret=cEd7rLTTHt KVM客户机正常运行时是不需要在主机上显示图形界面的,以前都是使用-nographic和-daemoniz选项来使客户机后台运行。 但是从qemu-kvm 1.4开始,这招不灵了,会有这样的错误提示: -nographic can not be used with -daemonize 这提示过于简单的,新版本的kvm不再允许-nographic和-daemonize一起使用了,应该使用-display none参数来代替-nographic,这样: kvm … -display none -daemonize -display参数用于替代老风格的显示类型选项,如-sdl,-curses,-vnc,其语法如下: -display [sdl | curses | vnc=] 其中,vnc=中的display与显示环境变量$DISPLAY的含义一致,格式为hostname: displaynumber.screennumber(X服务器主机名/地址:显示号.屏幕号)。一般设置为vnc=:0即可,如果有多台虚拟机在同一台主机上需要同时使用VNC,则每台客户机的显示号顺延就可,比如:1,:2,:3等,而通过vnc客户端连接客户机的端口号则分别为5900,5901,5902,5903。5900是默认的vnc端口,对应显示设备:0。 使用-display none选项时,客户机仍然会看到模拟的显卡,但是其显示不会输出给用户。 -display none与-nographic的区别是,-display none仅仅影响显示输出,而-nographic同时还会影响串行口和并行口的输出。 -nographic和-daemonize组合一直以来存在一个小问题,kvm客户机启动后,主机虚拟终端后续的命令回显会被关闭,但命令的输出会显示,只能退出重新登录终端才会恢复正常,这是个很明显的bug,却很久都没有修复。改用-display none参数后就没有此问题了。 kvm更详细的用法,请自行 man qemu

2019-03-31 · 1 min · 42 words · -

nftables trace

nftables trace nhttps://wiki.nftables.org/wiki-nftables/index.php/Ruleset_debug/tracing nft add rule nat post ip saddr 192.168.60.0/24 meta nftrace set 1 oif wlp3s0 masquerade nft add rule nat post ip protocol icmp icmp type echo-request meta nftrace set 1 accept nft insert rule nat post ip protocol icmp icmp type echo-request meta nftrace set 1 accept nft add rule nat post ip protocol icmp icmp type echo-request meta nftrace set 1 log nft monitor trace

2019-03-30 · 1 min · 69 words · -

armv6, armv7, rm处理器中a5 a8 a9,v6 v7,arm7 arm9 arm11

armv6, armv7, rm处理器中a5 a8 a9,v6 v7,arm7 arm9 arm11 ARM是微处理器行业的一家知名企业,arm处理器以体积小和高性能的优势在嵌入式设备中广泛使用,几乎所有手机都是使用它的。 armv6, armv7, armv7s是ARM CPU的不同指令集,原则上是向下兼容的。如iPhone4S CPU支持armv7, 但它同时兼容armv6,只是使用armv6指令可能无法充分发挥它的特性。同理iPhone5 CPU支持armv7s,它虽然也兼容armv7,但是却无法进行相关的优化。 ARM处理器发展这么多年,有很多架构,很多不同的内核 架构有armv1 v2 v3 v4 v5 v6 v7 内核太多了,比如armv1对应的是arm1,armv5对应的arm9,armv6对应的arm11,armv7对应的cortex(比如A8 A9都属于cortex架构) cortex-a8 cortex-a9 arm11 arm 9都是CPU构架。 在性能上cortex-a9 >cortex-a8>arm11。 arm11是ARM V6的构架,老的指令集,被淘汰的东西咯,性能不如ARM V7构架的CPU。 cortex-a8 是第一款基于 ARM V7指令集的CPU,比V6先进了,V6的不支持在线FLASH播放。即使能安装插件也不能完整的支持FLASH播放,性能上不行,即使破解了播不出来。A8完美支持FLASH的! cortex-a8 是目前的主流CPU,中高端机上的,尤其是高端机的稳定产品,中低端都用V6构架的CPU,比如MSM 7227 ,别看800Hz的频率,其实是上一代的,不如同频率的7230的性能的四分之一。 cortex-a9多核处理器,对MPCore的优化,向高性能的发展,未来的主流,现在的双核手机CPU都是这个构架 目前最好的是cortex-A9构架的CPU是高端的主流CPU,比如NV的双核,德州仪器的双核很多都是用的A9构架,A8是目前的中高端的主流,一般A8构架的双核CPU不多,几乎没有。 https://blog.csdn.net/maochengtao/article/details/9951131

2019-03-27 · 1 min · 47 words · -

WAL

WAL 什么是 WAL WAL (Write Ahead Log) 预写日志,是数据库系统中常见的一种手段,用于保证数据操作的原子性和持久性。 在计算机科学中,「预写式日志」 (Write-ahead logging,缩写 WAL)是关系数据库系统中用于提供原子性和持久性 (ACID 属性中的两个)的一系列技术。在使用 WAL 的系统中,所有的修改在提交之前都要先写入 log 文件中。 log 文件中通常包括 redo 和 undo 信息。这样做的目的可以通过一个例子来说明。假设一个程序在执行某些操作的过程中机器掉电了。在重新启动时,程序可能需要知道当时执行的操作是成功了还是部分成功或者是失败了。如果使用了 WAL,程序就可以检查 log 文件,并对突然掉电时计划执行的操作内容跟实际上执行的操作内容进行比较。在这个比较的基础上,程序就可以决定是撤销已做的操作还是继续完成已做的操作,或者是保持原样。 WAL 允许用 in-place 方式更新数据库。另一种用来实现原子更新的方法是 shadow paging,它并不是 in-place 方式。用 in-place 方式做更新的主要优点是减少索引和块列表的修改。ARIES 是 WAL 系列技术常用的算法。在文件系统中,WAL 通常称为 journaling。PostgreSQL 也是用 WAL 来提供 point-in-time 恢复和数据库复制特性。 备份 我们想一想,如果想保证对一个数据的操作可以恢复。可以怎么做?你不用去想数据库是怎么实现的,也不用想太高深。其实这是一个很简单的问题,我们常常在处理这种问题。最简单的方法其实就是备份一份数据:当我需要对一条数据做更新操作前,先将这条数据备份在一个地方,然后去更新,如果更新失败,可以从备份数据中回写回来。这样就可以保证事务的回滚,就可以保证数据操作的原子性了。其实 SQLite 引入 WAL 之前就是通过这种方式来实现原子事务,称之为 rollback journal, rollback journal 机制的原理是:在修改数据库文件中的数据之前,先将修改所在分页中的数据备份在另外一个地方,然后才将修改写入到数据库文件中;如果事务失败,则将备份数据拷贝回来,撤销修改;如果事务成功,则删除备份数据,提交修改。 WAL 再继续上面的问题?如何做到数据的可恢复 (原子性)和提交成功的数据被持久化到磁盘 (持久性)?另一种机制就是WAL,WAL 机制的原理也很简单:「修改并不直接写入到数据库文件中,而是写入到另外一个称为 WAL 的文件中;如果事务失败,WAL 中的记录会被忽略,撤销修改;如果事务成功,它将在随后的某个时间被写回到数据库文件中,提交修改。」 WAL 的优点 读和写可以完全地并发执行,不会互相阻塞 (但是写之间仍然不能并发)。 WAL 在大多数情况下,拥有更好的性能 (因为无需每次写入时都要写两个文件)。 磁盘 I/O 行为更容易被预测。 使用更少的 fsync()操作,减少系统脆弱的问题。 提升性能 我们都知道,数据库的最大性能挑战就是磁盘的读写,许多先辈在提供数据存储性能上绞尽脑汁,提出和实验了一套又一套方法。其实所有方案最终总结出来就三种:「随机读写改顺序读写」、「缓冲单条读写改批量读写」、「单线程读写改并发读写」。WAL 其实也是这两种思路的一种实现,一方面 WAL 中记录事务的更新内容,通过 WAL 将随机的脏页写入变成顺序的日志刷盘,另一方面,WAL 通过 buffer 的方式改单条磁盘刷入为缓冲批量刷盘,再者从 WAL 数据到最终数据的同步过程中可以采用并发同步的方式。这样极大提升数据库写入性能,因此,WAL 的写入能力决定了数据库整体性能的上限,尤其是在高并发时。 ...

2019-03-27 · 2 min · 224 words · -

多CPU架构支持的Docker镜像

多 CPU 架构支持的 Docker 镜像 https://medium.com/@mauridb/docker-multi-architecture-images-365a44c26be6

2019-03-23 · 1 min · 6 words · -

tomcat session 共享, redis集群

tomcat session 共享, redis集群 https://github.com/ran-jit/tomcat-cluster-redis-session-manager

2019-03-22 · 1 min · 5 words · -

golang 算符优先级

golang 算符优先级 Binary operators (MACAO) Prio Operators Note 1 * / % « » & &^ Multiplicative 2 + - ^ Additive 3 == != < <= > >= Comparison 4 && And 5 | Or

2019-03-21 · 1 min · 36 words · -

golang base64

golang base64 http://www.01happy.com/golang-base64-encode-decode/ golang中base64编码和解码 Golang 3年前 (2016-08-05) 1011浏览 0评论 golang中base64的编码和解码可以用内置库encoding/base64 package main import ( “encoding/base64” “fmt” “log” ) func main() { input := []byte(“hello golang base64 快乐编程http://www.01happy.com +~”) // 演示base64编码 encodeString := base64.StdEncoding.EncodeToString(input) fmt.Println(encodeString) // 对上面的编码结果进行base64解码 decodeBytes, err := base64.StdEncoding.DecodeString(encodeString) if err != nil { log.Fatalln(err) } fmt.Println(string(decodeBytes)) fmt.Println() // 如果要用在url中,需要使用URLEncoding uEnc := base64.URLEncoding.EncodeToString([]byte(input)) fmt.Println(uEnc) uDec, err := base64.URLEncoding.DecodeString(uEnc) if err != nil { log.Fatalln(err) } fmt.Println(string(uDec)) } 运行输出: go run encode.go aGVsbG8gZ29sYW5nIGJhc2U2NCDlv6vkuZDnvJbnqItodHRwOi8vd3d3LjAxaGFwcHkuY29tICt+ ...

2019-03-21 · 1 min · 84 words · -

jpackage, JEP 343

jpackage, JEP 343 https://www.infoq.cn/article/Hx61r30V8*Ur5ltrQjXu?utm_source=rss&utm_medium=article https://openjdk.java.net/jeps/343 OpenJDK 社区发布了JEP 343: 打包工具的早期访问版本。JEP 343: 打包工具,又名 jpackage,是打包自包含 Java 应用程序和 Java 运行时环境的新工具。这个基于JavaFX javapackager 工具的原型适用于对 jpackage 感兴趣的开发人员。

2019-03-19 · 1 min · 20 words · -

Linux 命令选项, 参数,括号, 可选, 必选

Linux 命令选项, 参数,括号, 可选, 必选 https://blog.csdn.net/raoqin/article/details/8875089 []: 内的内容意思是: 可写可不写 例如: /home下就一个list 文件,使用ls -help中的 Usage: ls [OPTION]… [FILE]… {}: 那就必须要在{}内给出的选择里选一个。 <>: 表示必选 在数据库中 Transact-SQL 语法规则 Transact-SQL 引用中的语法关系图使用下列规则。 规范 用于 大写 Transact-SQL 关键字。 斜体 Transact-SQL 语法中用户提供的参数。 | (竖线) 分隔括号或大括号内的语法项目。只能选择一个项目。 [ ] (方括号) 可选语法项目。不必键入方括号。 {} (大括号) 必选语法项。不要键入大括号。 [ ,…n ] 表示前面的项可重复 n 次。每一项由逗号分隔。 [ …n ] 表示前面的项可重复 n 次。每一项由空格分隔。 加粗 数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样键入的文本。 <标签> ::= 语法块的名称。此规则用于对可在语句中的多个位置使用的过长语法或语法单元部分进行分组和标记。适合使用语法块的每个位置由括在尖括号内的标签表示: <标签>。 命令行语法字符 在命令行语法中,某些字符与格式有着特殊的意义与含义。 本文档中的命令行语法使用以下字符格式: 方括号 [] 方括号 ( [ ] ) 表示里面的元素 (参数、值或信息) 是可选的。 您可以选择一个或多个条目,也可以不选。 不要将方括号本身也输入到命令行中。 ...

2019-03-19 · 1 min · 157 words · -

MySQL DELETE TRUNCATE drop

MySQL DELETE TRUNCATE drop 相同点: 1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点: truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。 delete 语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。 truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。 3.delete 语句不影响表所占用的 extent,高水线(high watermark)保持原位置不动 drop 语句将表所占用的空间全部释放。 truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;truncate 会将高水线复位(回到最开始)。 4.速度,一般来说: drop> truncate > delete 5.安全性: 小心使用 drop 和 truncate,尤其没有备份的时候.否则哭都来不及 使用上,想删除部分数据行用 delete,注意带上where子句. 回滚段要足够大. 想删除表,当然用 drop 想保留表而将所有数据删除,如果和事务无关,用truncate即可。如果和事务有关,或者想触发trigger,还是用delete。 如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。 6.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同: 二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 ...

2019-03-18 · 1 min · 100 words · -

DecimalFormat

DecimalFormat 我们经常要将数字进行格式化,比如取2位小数,这是最常见的。Java 提供 DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子。下面是一个例子: importjava.text.DecimalFormat; publicclassTestNumberFormat{ publicstaticvoidmain(String[]args){ doublepi=3.1415927;//圆周率 //取一位整数 System.out.println(newDecimalFormat(“0”).format(pi));//3 //取一位整数和两位小数 System.out.println(newDecimalFormat(“0.00”).format(pi));//3.14 //取两位整数和三位小数,整数不足部分以0填补。 System.out.println(new DecimalFormat(“00.000”).format(pi));// 03.142 //取所有整数部分 System.out.println(newDecimalFormat("#").format(pi));//3 //以百分比方式计数,并取两位小数 System.out.println(new DecimalFormat("#.##%").format(pi));//314.16% longc=299792458;//光速 //显示为科学计数法,并取五位小数 System.out.println(newDecimalFormat("#.#####E0").format(c));//2.99792E8 //显示为两位整数的科学计数法,并取四位小数 System.out.println(newDecimalFormat(“00.####E0”).format(c));//29.9792E7 //每三位以逗号进行分隔。 System.out.println(newDecimalFormat(",###").format(c));//299,792,458 //将格式嵌入文本 System.out.println(newDecimalFormat(“光速大小为每秒,###米。”).format(c)); } } DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。上面的例子包含了差不多所有的基本用法,如果你想了解更多,请参考 DecimalFormat 类的文档。 https://blog.csdn.net/wangchangshuai0010/article/details/8577982

2019-03-18 · 1 min · 45 words · -

霍桑效应

霍桑效应 20 年代时,在芝加哥郊外一个名为"霍桑"的工厂里,研究人员在研究照明条件对工人绩效表现的影响。研究人员最初认为,随着工厂照明条件的改善,工人的生产率应当会随之提升。但事实却并非如此,研究人员后来才发现,工人绩效的提升是因为他们感觉受到了公司的关注,从而增强了工作动机,这就是"霍桑效应"的产生。 https://www.infoq.cn/article/gU*236UQhE5FYgDsYXoB?utm_source=rss&utm_medium=article

2019-03-18 · 1 min · 4 words · -

ansible 管理工作站配置, linux初始化

‘ansible 管理工作站配置, linux初始化’ # archlinux 直接从仓库里安装就是最新版本 sudo pacman -S git ansible ubuntu,debian ubuntu 默认 apt 安装的ansible版本可能是旧版本, 建议参照ansible官网文档安装新版本的ansible https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#latest-releases-via-apt-debian Add the following line to /etc/apt/sources.list: deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main Then run these commands: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 sudo apt-get update sudo apt-get install ansible 编写ansible 脚本 vim local.yml - hosts: localhost become: true tasks: - name: Install htop apt: name=htop 提交到 github git add local.yml git commit -m "initial commit" git push origin master 执行脚本 ansible-pull模式 sudo ansible-pull -U https://github.com/wiloon/ansible.git 本地执行 ansible-playbook ansible/local.yml --extra-vars "user_name=wiloonwy" https://linux.cn/article-10434-1.html

2019-03-16 · 1 min · 88 words · -

SSL 故障分析

SSL 故障分析 openssl s_client -connect host0:port0 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' openssl verify foo.pem openssl s_client -connect host0:port0 -state -showcerts 解码根证书 openssl x509 -text -in roch.pem https://www.ibm.com/developerworks/cn/linux/l-cn-sclient/index.html

2019-03-15 · 1 min · 29 words · -

diffie-hellman

diffie-hellman openssl dhparam -out dhparam.pem 2048 # 如果你的机器性能足够强大,可以用 4096 位加密

2019-03-15 · 1 min · 10 words · -

idea 快捷键, keymap

idea 快捷键, keymap alt + shift + up, move line up Key Command ctrl+g line/column ctrl+t Class… ctrl+] move caret to code block end ctrl+alt=b Go to Implementation(s), 接口的实现类

2019-03-12 · 1 min · 29 words · -

无障碍设计规范,GB50763—2012

无障碍设计规范,GB50763—2012 2012年9月1日,住房和城乡建设部、国家质检总局联合发布的修订后的《无障碍设计规范》 (GB50763-2012) 国家标准正式实施。 为配合国家《无障碍环境建设条例》的制定、贯彻实施,切实为我国无障碍环境建设提供技术支持,使无障碍建设更适应我国经济社会发展和广大残疾人、老年人等社会成员的需求,2009年开始,住房和城乡建设部、中国残联等部门组织相关单位、专家启动了对2001年实施的《城市道路和建筑物无障碍设计规范》的修订工作。规范修订是在广泛深入调查研究,认真总结我国近年来无障碍建设的实践经验,研究分析无障碍建设的现状和发展,参考有关国际标准和国外先进技术,并在广泛征求全国有关单位的意见基础上,反复讨论、修改和完善形成的。与2001年实施的《城市道路和建筑物无障碍设计规范》相比,规范由行业标准上升为国家标准,提高了规范执行强制力;名称改为《无障碍设计规范》,增加了农村地区道路、公共服务设施无障碍设计的要求;增加了城市绿地、历史文物、加油加气站、高速公路服务区、信息无障碍等无障碍建设和改造内容;扩大了建筑类型以及无障碍设施的类型;对坡道扶手设置、缘石坡道起始处与地面高差等细节部分进行了调整,使无障碍设计更加人性化。 《无障碍设计规范》的实施,对于进一步规范我国无障碍建设,特别是配合《无障碍环境建设条例》实施,加快我国无障碍建设发展,切实保障残疾人、老年人等社会成员参与社会生活权益具有重要意义。 来源:中国残联维权部 http://www.cdpf.org.cn/special/wzajstl/xcgcdt/201209/t20120913_267583.html

2019-03-09 · 1 min · 8 words · -

MySQL dml

MySQL dml DML iNSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); https://blog.51cto.com/lustlost/1224775

2019-03-08 · 1 min · 16 words · -

google authenticator databases

google authenticator databases https://eduncan911.com/technology/hardware/google-authenticator-databases-move-copy-fix.html /data/data/com.google.android.apps.authenticator2/databases/databases

2019-03-06 · 1 min · 5 words · -