2018年3月22日星期四

/dev/shm的用途

    工作中遇到在公司内部容器环境下yum报错的情况,报错如下:
Total size: 229 M
Installed size: 1.2 G
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test

Transaction check error:
  installing package xxxxx.x86_64 needs 274MB on the /dev/shm filesystem
Error Summary
-------------
Disk Requirements:
  At least 274MB more space needed on the /dev/shm filesystem.
报错信息还比较清晰,安装这个软件包需要1.2G,但是/dev/shm空间不够。

看下/dev/shm占用了多少










问题来了
1) /dev/shm作用是什么,能否调整
2) tmpfs是什么文件系统
3) 这里什么决定了使用/dev/shm,问题如何解决

下面逐个解决这些问题。


2018年3月20日星期二

dd命令用法详解

一.dd命令用法

dd的作用是拷贝文件,从指定的来源,指定的方式进行文件创建、拷贝,过程中可以进行各种转换。
dd可以很方便的验证各种IO表现,还可以用来进行整个盘/文件的复制。
dd的拷贝方式是数据块block级别的, 忽略文件系统类型和操作系统。

2018年3月17日星期六

iostat用法详解


iostatCPU以及IO设备/分区信息统计(注意,不是文件系统)的工具,非常常用,可以查看cpu使用情况以及IO设备当前繁忙情况。本文介绍常用方法,以及指标解读。

.用法

iostat [options] [interval [ count ]
interval表示汇报内容的间隔,count表示汇报次数。如果指定了interval不指定count,则无限次输出
  • -c 显示CPU报告
  • -d 显示Disk报告
  • -k 使用KB代替(512B)块数目
  • -m 使用MB代替(512B)块数目
  • -p 包括分区的统计信息。不带则只显示device
  • -t 时间戳输出
  • -x 显示扩展信息
  • -z 忽略无活动的设备
  • -h 格式化,使得更易读
  • -N 显示已注册的设备mapper名,例如使用了lvm2的时候的输出

以下示例基于RedHat 7.2
#iostat -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)

2018年3月15日星期四

sysbench 1.0用法探索

一.介绍

sysbench很久用过之前0.4的版本,目前已经正式到1.0版本,用法也有了变化,探索一下sysbench的使用场景,方便后续使用。

官方介绍 https://github.com/akopytov/sysbench, sysbench是一个模块化,跨平台,多线程的基准测试工具。

2018年3月12日星期一

ios升级到最新11.1.2后不停crash

纯粹记录一次意外事件。有时候一次意外,反而让你发现了世界的一些奇妙!
iphone 6 plus ios升级到最新版本的11.1.2之后一开始还挺好用的(12月1日),一觉醒来(12日2日)发现系统开始不停的崩溃,完全无法使用,基本一分钟内crash一次,明显感觉是周期性的触发。
从概率上来说,刚好升级系统刚好硬件问题,概率极小,肯定是这个新版本有什么bug被不幸触发了,查了下降级到ios 10版本的可能性,可以但是略显麻烦。 Google一把后发现在今天有人报了同样的问题(Google能把当日的信息抓取并以第一页就匹配我的iphone crash关键字搜索,精确地解决了我的问题,实在叹服!)。
信息来源: https://www.macrumors.com/2017/12/02/ios-11-1-2-date-bug-crash-loop/


一个日期bug+一个local notification的APP,就能触发这个bug!其信息判断居然来自twitter前一天的一个“预告”: 如果你有款app会反复的进行本地化地发送通知,它会导致12月2日ios宕机! 
网友们对此也是多种办法:
  1. 如果是苹果开发者,可以安装11.2 beta,看来已经fix该问题。
  2. 找出这个app,关闭其通知功能。
  3. 调整时区,避免到达12月2日(目测用途不大)
  4. 调整时间,避免到达12月2日,等fix包正式发布
选择关闭了所有的app通知功能,除非必须的那些,然后等新版本升级;)
在这个事件里面,苹果应该至少对登录到他官网搜索了相关问题的人提供一些有效信息提醒才对。这也对有意持续做好产品的人提供了启示:
及时可靠的信息共享与反馈,无疑是高效解决各类问题所必须的,也是打造优秀体验所必须的。
另外一个启示:
人生苦短,用好Google ;)

字符编码/字符集详解

一.引言


工作中,经常会遇到乱码,字符集转换等问题,尤其在python处理汉字,以及MySQL生僻字处理的时候。本文详细解释下字符集以及字符编码的用途,关于python处理中文,以及MySQL中的字符集相关,后续再聊。

我们知道,计算机看到的都是二进制,文本文件中的0/1,怎么转换成人类可读的文字呢?这就涉及到编码以及解码,简单来说将0/1进行结构化解读,通过字符集-编码-解码的对应关系,进行正确地存储和读取。
那问题来了,编解码到底是怎么个过程,字符集是什么?有哪些字符集,它们之间哪些兼容哪些不兼容?下文尝试解释清楚。

从乌镇学打造产品

如今的乌镇不仅仅是一个旅游景点,除了古镇特色还有互联网大会,戏剧节等,在众多江南小镇中独具特色,今天听到他的创造者分享的经验,很有意思,用时间打磨出了一个很好的产品。