- 博客(125)
- 资源 (4)
- 收藏
- 关注
原创 容器内部运行sync命令,脏页回收是容器内部还是整个物理机回收
步骤一:启动一个容器[host]#docker run -t -i centos:latest /bin/bash在容器里运行:[docker]#grep Dirty /proc/meminfoDirty: 168 kB步骤二:在主机里创建大量的脏页[host]#dd if=/dev/zero of=testfile bs=1048576 count=4096在容器里运行:[docker]#grep Dirty /proc/meminfo...
2020-11-02 16:04:30 397
原创 C state和P state 一些体会
C stat是电源节能的一个feature, 通过在cpu 负载不忙的时候,通过关闭cpu内部的不同器件的电源,来达到节能的目的。C state节能有两个,一个是package Cstate,一个是Core Cstate. Package对应的是一个物理cpu,Core对应的就是物理cpu内部的物理core。对应级别如下:C0:是一个Active状态,说明正在执行指令。就是有任务正在运行时的状态。注意,这个状态并不意味着cpu是最高频率,只要有任务在运行,cpu即使低频率也是在C0状态。从供电角
2020-10-31 18:47:33 15978 5
原创 openshift webconsole不用直接用地址访问
一直以为openshift webconsole可以通过lb的IP地址可以访问,修改了很多配置文件。没有成功。问了社区的开发者才知道webconsole也是个pod,也要通过router,必须用域名访问。初学者不知道的太多了。等研究FQDN就知道了。...
2019-06-11 11:04:06 1810
原创 openshift ansibe 自动部署后,oc cluster status 查看发现是not running
如题,oc cluster up 是all-in-one的部署使用的。ansible自动部署成功后,不需要用oc cluster status查看。总感觉这样有些矛盾。[root@master001 ~]# oc cluster -hManage a local OpenShift clusterThe OpenShift cluster will run as an all-in-on...
2019-06-11 10:22:45 691
原创 openshift集群如何增加一个node
openshift 增加节点:前提是有一个已经运行的openshift的集群。在此集群上添加一个node。如何建立openshift集群,参见https://blog.csdn.net/xiaofeng_yan/article/details/90174543步骤一:新建立一个虚拟机,本文的虚拟机的IP是10.2.3.21,hostname 为node3步骤二:在master...
2019-05-13 15:48:45 1979 9
原创 如何搭建openshift-3.11的集群环境
OS环境是centos 7.6,openshift版本3.111、首先建立如下的虚拟机10.2.3.12 master110.2.3.13 master210.2.3.14 master310.2.3.15 node110.2.3.16 node210.2.3.17 nfs10.2.3.18 lb三个master,两个node,一个nfs(共享存储),一个l...
2019-05-13 15:39:54 2775 13
原创 vsphere下重置系统镜像密码的方法
vshphere没有自动修改客户镜像的接口。本文通过一个方法,来解决这个问题。1 启动一个正常的虚拟机,暂且命名为VM_CHANGE_PASSWD2 将客户的镜像通过vsphere挂载到这个VM_CHANGE_PASSWD虚拟机上3 进入VM_CHANGE_PASSWD虚拟机,扫描热加的盘(将客户的系统盘以数据盘的形式挂载到这个虚拟机上)4 mount这个客户的盘的root分区上,...
2019-03-29 14:07:02 1651
原创 chroot 执行多条命令,echo !(叹号)出错问题
chroot 运行多条命令cat << EOF | chroot your_rootfs /bin/shtouch aaaatouch bbbbtouch cccEOFchroot 自动修改rootfs的密码,解决echo不识别叹号问题cat << EOF | chrootyour_rootfs /bin/shecho '1!23456' | ...
2019-03-12 14:08:46 972
原创 centos6.5 升级内核后kdump功能失效的原因分析
centos6.5的内核升级到最新内核后(自己编译的内核),kdump使能失败。debug的方式:1 首先要启动kdump功能,出现了如下信息/proc/sys/crypto/fips_enabled: No such file or directory。通过查看代码,解决方案:运行如下命令:sysctl -n -e crypto.fips_enable'2 这个成功后又出现...
2019-02-28 16:47:25 2307
原创 wmare下 host端如何更精确的取得虚拟机的状态
VMCI socket是vmare开发的,通过vmare自定义socket使得esxi(host)端与客户操作系统 之间能够在没有网络的情况下进行通信的机制。类似有kvm的qga功能。esxi端通过vmci socket与虚拟机通信,通过这个机制esxi可以执行虚拟机的各个性能相关的命令,更加具体的了解虚拟机的性能。以下是参考vmci socket手册开发的,vmare下如何获取虚拟...
2019-02-25 11:19:19 395
原创 虚拟机迁移出现 a start job is running for dev-disk 的错误
虚拟机迁移出现 a start job is running for dev-disk 的错误。 这个问题很明显,启动挂载系统出现了问题。一直找不到此系统盘。定位过程如下:1 查看迁移的img的启动项和fstab的文件,盘的UUID是否一直,这个是一致的 可以通过命令 guestmount -a /root/root.img -m /dev/sda1 --rw /mnt挂...
2018-11-05 17:59:39 2256
原创 Linux 内核调度发展从2.6到4.16(含部分内存和虚拟化)
自己的总结,如有纰漏请批评指正,转发请标明出处xiaofeng_yan2006@126.com
2018-11-05 14:43:16 380
原创 新型的initrd的解压方法
最近在解决一个问题,需要解压ubuntu的initrd来查看启动脚本。$ file /boot/initrd.img-4.15.0-32-generic/boot/initrd.img-4.15.0-32-generic: ASCII cpio archive (SVR4 with no CRC)$mkdir rootfs$cd rootfs$cpio -idvm < /...
2018-10-23 10:51:36 7686 6
转载 GCC设置函数属性为constructor和destructor
cc允许为函数设置__attribute__ ((constructor))和__attribute__ ((destructor))两种属性,顾名思义,就是将被修饰的函数作为构造函数或析构函数。程序员可以通过类似下面的方式为函数设置这些属性: 带有(constructor)属性的函数将在main()函数之前被执行,而带有(destructor)属性的函数将在main()退出时执行。下...
2018-09-28 10:34:16 377
转载 RDMA技术
RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问,就是为了解决网络传输中服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。这允许高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何...
2018-09-26 16:27:11 1056
原创 内核里控制脏页的参数
内核的脏页的控制分为时空两个大的维度。在时间上脏页不能存在时间过长,过长会导致内存紧张。同时如果时间过长,这时候突然掉电,那么会导致数据损失过多。所以,无论如何都要有个时间的限制。在空间上脏页不能太多,太多也会导致内存紧张。在时间控制上总要的参数有dirty_expire_centisecs,linux后台的flush线程按照dirty_writeback_centisecs周期启动,...
2018-08-16 14:10:52 1276
原创 理解inux 下 intel处理器睿频
误区:睿频就是所有的cpu都能达到最大频率INTEL睿频步骤:intel使用时intel_pstate的技术来管理cpu的变频,通过下面的命令可以查看使能情况(intel-2697 v4)# ls /sys/devices/system/cpu/intel_pstate/max_perf_pct min_perf_pct no_turbo num_pstates tu...
2018-08-14 13:35:01 10371 3
原创 VMWARE的调度策略
1 vmware的调度相对与linux增加了两个状态,co-start(协同开始)和co-stop(协同停止) 当一个拥有多个vcpus的smp的虚拟机在进行调度时,会使用co-scheduling(协同调度)。就是当满足vcpus个物理cpu资源时。这个虚拟机的vcpus一起运行(co-start)。也会一起停止(co-stop)。这样的好处避免多个一个虚拟机的vcpu为了等待彼此资源而白白的...
2018-06-01 18:13:17 3479
原创 如何关闭steal time,使得在虚拟机里st不反应宿主机限制
如果在云中心,不想让客户看见st的反映值,可以用如下办法在qemu-kvm 加入 -cpu <modle > -kvm_steal_time参数后,st在虚拟机里显示为0.例如:sudo qemu-system-x86_64 -enable-kvm -hda ubuntu.img -m 6000 -smp 4 -cpu core2duo,-kvm_steal_timexml配置<...
2018-05-23 10:42:00 1553
原创 cgroup 限制虚拟机带宽后,虚拟机里top统计问题分析
今天遇到了一个问题。用cgroup限制虚拟机(qemu-kvm)的CPU占比为宿主机的50%时。发现虚拟里centos7系统,用top显示一个死循环的进程,这个进程的占比时50%。而我所认知时虚拟机对限制应该不感知。应该显示100%才对。我又用qemu-kvm启动了一个ubuntu的系统,发现ubuntu里用top看一个死循环,这个进程显示的是100%。问题排查:1 一开始我以为时top的工具统计...
2018-05-21 16:39:31 826
转载 gcc的__attribute__编译属性
gcc的__attribute__编译属性有很多子项,用于改变作用对象的特性。这里讨论section子项的作用。 __attribute__的section子项使用方式为:__attribute__((section("section_name")))其作用是将作用的函数或数据放入指定名为"section_name"的段。看以下程序片段: #include #includ
2018-01-05 13:45:03 510
转载 自定义ELF,使得自动做初始化
This is an example to custome youre ELF sections for initialization.//main.c#include #include "init.h"static void callinit(void){ init_fn_t *fn; for (fn = &__start_init_sec;
2017-11-22 17:04:28 540
转载 Freezing of tasks [Kernel Documents]
Freezingof tasks(C)2007 Rafael J. Wysocki , GPL翻译: Arethe Qin I. 什么是任务冷冻?任务冷冻是一种在系统休眠或者系统挂起期间控制用户空间进程和一些内核线程的机制。II. 它是如何工作的?每个任务都有4个标志用于任务冷冻机制,P
2017-11-22 14:14:47 385
原创 一个简单的爬虫
import urllib.requestimport reimport osimport timeimport sched# 写入错误日志方法def write_error_log(error_str): try: fh=open(data_path + "/error_log.txt", "a") fh.write(ti
2017-11-22 10:46:46 247
转载 Linux 基数(radix)树
基数(radix)树Linux基数树(radix tree)是将指针与long整数键值相关联的机制,它存储有效率,并且可快速查询,用于指针与整数值的映射(如:IDR机制)、内存管理等。IDR(ID Radix)机制是将对象的身份鉴别号整数值ID与对象指针建立关联表,完成从ID与指针之间的相互转换。IDR机制使用radix树状结构作为由id进行索引获取指针的稀疏数组,通过使用
2017-11-22 10:41:42 6737
转载 向linux内核版本号添加字符/为何有时会自动添加“+”号
编译2.6.35.7 kernel版本的时候发现,“2.6.35.7“的内核版本编译成功后生成的版本号变成了“2.6.35.7+”,为什么后面会多一个加号呢?问题出现在linux的版本控制这一块:打开Makefile我们可以在文件的最上面可以发现VERSION = 2PATCHLEVEL = 6SUBLEVEL = 35EXTRAVERSION = .7NAME = Yok
2015-09-11 18:42:13 816
原创 SCHED_DEALINE调度类分析(二)
EDF时间管理 EDF的时间更新可以理解为edf runtime的一个消耗,或者叫做更新它的执行时间。它的更新时间有两个地方: 1. 每个时钟中断到来的时候,比如HZ=1000的话,即每1ms更新一次。 调用的关系如下: Tick_periodic(int cpu) –>update_process_timers();
2015-09-06 16:53:37 1385
原创 SCHED_DEALINE调度类分析(一)
以下是本人分析的内核新的调度类SCHED_DEADLINE调度类,这个调度类没有进主线之前叫EDF(Earliest DeadlineFirst)。在3.14的内核时进入了主线。本文是基于没有进主线之前的分析。思想基本一致。 EDF介绍 EDF(Earliest DeadlineFirst)它是一种最早到期优先的调度算法。当前Linux内核中使用的调度的算法是主要是cfs和fifo调度类,但是这
2015-09-06 16:39:45 5113
转载 转载一个感悟
1、98年马化腾等一伙凑了50万创办了腾讯没买房;98年 史玉柱 借了50万搞脑白金没买房;99年 丁磊用50万创办163.com 没买房;99年 陈天桥炒股赚了50万创办盛大 没买房;99年马云等18人凑了50万注册阿里巴巴 没买房。如果当年他们用这50万买了房,现在估计还在还着银行的贷款吧。2、年轻的我们必须懂得:1、你不勇敢,没人替你坚强。2、没有伞的
2015-06-23 09:06:27 1978
转载 Linux RCU机制详解 (透彻)
一:前言 RCU机制出现的比较早,只是在linux kernel中一直到2.5版本的时候才被采用.关于RCU机制,这里就不做过多的介绍了,网上有很多有关RCU介绍和使用的文档.请自行查阅.本文主要是从linux kernel源代码的角度.来分析RCU的实现.在讨论RCU的实现之前.有必要重申以下几点: 1:RCU使用在读者多而写者少的情况.RCU和读写锁相似.但RCU的读者占锁没有任何
2015-02-27 14:05:32 18474 1
转载 head.s
在进入保护模式后,head.s程序重新建立和设置IDT,GDT表的主要原因是为了让程序在结构上比较清晰,也是为了与后面的linux 0.11内核源代码中这两个表的设置方式保持一致,当然。就本程序来说我们完全可以直接使用boot.s中设置的IDT和GDT表位置,填入适当的描述符即可。##LATCH = 11930#定时器初始计数值SCRN_SEL = 0x18#屏幕显示内存段
2014-02-14 07:17:14 850
转载 bochs安装一系列问题 [转]
http://www.cnblogs.com/viviwind/archive/2012/12/21/2827581.html操作系统:ubuntu 12.04 http://gbk.chinaunix.net/uid-23817499-id-3418083.htmlapt-get install bochs错误一:00000000000p[ ] >>PAN
2014-01-14 07:17:10 1874
原创 python:event
event主要用在线程的通讯中,一个线程没有得到想要的资源,用event.wait()阻塞。当另一个线程给了相应的资源就用event通知所有的线程(用同一个event)其他的线程在得到之后就可以运行了。#event.pyimport threading class mythread(threading.Thread): def __init__(self,thread
2012-05-25 16:16:16 1873
原创 Makefile: 并行执行的例子
#example to parallel running#Makefilea: @$(SHELL) -c 'for((i=1;ib: @$(SHELL) -c 'for((i=1;iPC$ make a bI am aI am aI am aI am aI am aI am aI am aI am aI am a
2012-05-21 10:46:19 6742
转载 ARM VFP的一点体会
ARM VFP的一点体会关键字: VFP arm1136JF-S MCIMX31 gcc linux参考文献:>、>、<<VFP11 Vector Floating-point Coprocessor for ARM1136JF-S processor r1p3 Technical Reference Manual>>前言:MCIMX31 是一款基于ARM1136JF-S的多媒
2012-05-17 17:15:37 1836
转载 图片的文字变成wrod的方法
把书上的字快速弄到电脑上,我也会,哇哇。。。 在工作中,我常常在想,要是能把纸上有用的文字快速输入到电脑中,不用打字录入便可以大大提高工作效率该有多好呀!随着科技的发展, 这个问题在不断的解决,例如,现在市场上的扫描仪就带有OCR软件,可以把扫描的文字转换到电脑中进行编辑。但是,对于我们平常人来说,大多数人都是即不想多花钱购买不常用的设备,又不想费力气打字录入,那我就给大家提供一个我刚
2012-05-15 15:48:38 2006
Bash 脚本高级编程
2010-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人