Cloud Atlas
Introduction
服务器
内存
MLC - Intel内存延迟测试工具
IPMI
ipmitool使用tips
服务器oob带外访问设置
ipmi操作和对应的sel日志记录
BMC故障导致kipmi0极高的CPU使用
firmware
通过linux命令行修改服务器BIOS配置
Open Compute
服务器选型
操作系统
Linux
启动
RHEL7升级后磁盘设备label识别错误处理
进程
进程管理
进程状态标志的含义
运行队列中进程排查方法
使用nice调整进程优先级
检查进程的内存使用
top命令使用tips
检查进程运行在哪个CPU上
检查进程启动时间
检查进程使用网络端口
SELinux
线程
进程和线程
检查线程的方法
内核线程
日志
日志文件管理
logrotate日志轮转工具
mcelog系统硬件诊断日志搜集工具
systemd环境syslog-ng启动失败排查
syslog-ng部署和维护
tmp临时文件目录自动清理
禁止日志打印到控制台
内核
Linux资源管理
Cgroup快速起步
如何限制进程使用的内存
Cgroup的CPU使用统计控制器
Cgroup v2简介
在RHEL6中的Cgroups
RHEL6 Cgroups概述
RHEL6 使用控制组
在RHEL7中的Cgroups
RHEL7 Cgroups概述
RHEL7 使用控制组
RHEL7 使用libcgroup工具
网络
系统日志"TCP: time wait bucket table overflow"分析
Linux上禁用IPv6
内核参数网络配置案例
SYN攻击、SYN cookie和其他
dmesg日志"TCP:unexpectedly shrunk window"
TCP拥塞控制
内核中日志模块和参数
系统日志"__ratelimit: N callbacks suppressed"分析
cpu
CPU型号和分类
cpuinfo无法显示部分core
cpu_affinity
中断和smp_affinity
软中断
微代码Microcode
Linux 时钟管理
Intel Turbo Boost技术和intel_pstate
intel_pstate驱动详解
acpi-cpufreq主频设置
笔记本suspended后数秒无故wake up问题排查("ACPI: Waking up from system sleep state S3")
系统负载Load Averages的含义
分析Intel CPU Machine Check Exception(MCE)
"NOHZ: local_softirq_pending 100"
"NETDEV WATCHDOG: slave0 (bnx2): transmit queue 5 timed out"内核Panic排查
Intel Skylake/Kaby Lake处理器系列简介
Intel Skylake/Kaby Lake处理器超线程bug及处理
dmidecode分析
驱动
内核模式设置KMS
DKMS动态内核模块支持
dracut简介
内存
内存管理技术简介
概述
order 1内存页分配错误
内核同页合并
检查进程使用内存
缓存清理(drop_caches)和内存压缩(compact_memory)
存储
块设备阻塞事件
热插拔磁盘识别
内核跟踪排查
为什么会发生segfault
内核bug排查方法
调试系统错误(Debugging System Faults)
获取内核core dump
获取XEN内核core dump
高Sys CPU的排查
排查XEN服务器hang机core dump
vmcore分析案例:"kernel BUG at fs/buffer.c:1270"
获取MySQL core
在CentOS 5.11中编译crash
"Kernel panic - not syncing: stack-protector: Kernel stack is corrupted"
性能
"perf samples too long"是什么?
Perf案例(译)
设备管理
随机数生成器RNG
udev
udev设备管理架构
存储
磁盘
IO scheduler
混合HDD/SDD的IO scheduler设置
通过block_dump实时监测LinuxIO
检查磁盘I/O负载
iotop监视磁盘访问
LVM
在Gentoo上使用LVM
文件系统
EXT文件系统
EXT文件系统文件数
EXT文件系统误删文件恢复
noatime参数挂载文件系统降低IO
EXT3文件系统转换成EXT4
EXT4文件系统优化
Btrfs文件系统
Btrfs文件系统快速起步
XFS文件系统
重命名home目录提示"Device or resource busy"
ZFS文件系统
ZFS dataset丢失排查
ZFS替换故障磁盘
性能
iowait
网络块设备(Network Block Device, nbd)
nbd概览
网络
iproute2
ip
可伸缩网络堆栈
RSS
防火墙
Iptables
Iptables简易指南
CentOS设置HTTP访问iptables
在CentOS7上添加防火墙端口允许访问
交换机
构建Linux三层交换机
备份
使用tar备份完整Linux操作系统
使用rsync备份完整Linux操作系统
安全
审核
系统审核架构
系统审计部署
找出瞬间消失的TCP网络连接进程
防火墙
Linux防火墙简介
Red Hat
Fedora
在MacBook Pro上实现Fedora和macOS双启动
在Fedora中使用BCM4360无线网卡
Fedora设置fcitx中文输入
GoldenDict和英中字典设置
在Fedora中使用LXQt桌面
使用ImageMagick截屏
在LXQt桌面平铺窗口
nVidia GT 750M显卡
系统管理
Grub 2 boot loader
在grub2中切换默认启动内核
修改grub2启动内核参数
启动进入终端模式
OpenMLI
Systemd
systemd修改主机名
systemd清理journal日志
systemd管理cpupower
systemd管理rc.local启动
使用journalctl检查和维护systemd日志文件
Network
CentOS7关闭IPv6
NetworkManager命令行配置
rpm软件包管理
"无法获得metalink"错误
rpm使用tips
定时yum更新系统
最小化安装后的yum安装
yum使用tips
使用源代码RPMs
使用dnf管理软件包
转换AliOS到CentOS
绝对不要删除keyutils-libs软件包
无需安装的解压缩rpm文件
RHEL/CentOS启动服务Tips
Debian
deb软件包管理
Debian最小化安装后的软件包安装建议
Debian安装源修改
Debian apt-get update出现软件包Hash Sum mismatch处理
Gentoo
在MacBook上安装Gentoo
Portage包管理
gcc-config错误处理一例
nVidia显卡
intel显卡
混合显卡切换
从KDE桌面转向Xfce桌面
安装Xfce工作平台
中文输入
安装Broadcom无线网卡
电源管理:suspend和hibernate
emerge包管理tips
X window
从ma上访问远程X window
向X window程序发送字符串
FreeBSD
FreeBSD介绍
FreeBSD安装
在FreeBSD上安装软件:Packages和Ports
在ThinkPad上运行FreeBSD
FreeBSD无线网络
Windows
firewall
在Event Viewer中查看Firewall和IPsec事件
win2012
在Windows Server 2012安装和卸载GUI
rdesktop
Mac平台远程桌面
IIS Web服务
设置IIS下载.iso文件
数据库
mysql
安装和升级
CentOS 5安装MySQL 5.7
创建MySQL数据库和授权
MySQL数据库密码安全策略返回错误"ERROR 1819"
快速起步
mysql查询命令输出无表格线
mysql启动报错"Another MySQL daemon already running with the same unix socket."
磁盘I/O
什么时候MySQL执行IO
如何解决MySQL IOWait过高问题
主从同步
如何诊断同步备库延迟
故障排查
MySQL Root用户密码重置
网络
TCP/IP
TCP连接数检查
traceroute检查网络可达性
链路聚合
LACP
LACP原理
LACP的ad_select参数
LACP数据包分析
数据平面开发套件DPDK
在Linux上使用DPDK
网络数据包分析
tcpdump
tcpdump
tcpdump实例介绍
tcpdump避免"packets dropped by kernel"
分析跟踪失败的TCP连接和RST数据包
tcpdump在启用TCP卸载功能的网卡上报告"checksum error"
wireshark
使用wireshark分析TCP重传
ntop
ntop架构
在CentOS 7上安装ntop
ntopng开源替代
网络数据包分析工具
iftop网络流量(ip+port)分析工具
tcptrack网络流量(ip+port)分析工具
nethogs网络流量分析工具
存储
服务器直连存储DAS
mpt2sas
mpt2sas驱动系统日志分析
mpt2sas系统日志"0x3003010a"和奇怪的sdm磁盘设备
mpt2sas故障排查
mpt2sas驱动报错案例
mpt2sas故障磁盘剔除
S.M.A.R.T.
磁盘检测技术
磁盘健康检查
GlusterFS
GlusterFS服务器端Quorum
Ceph
SPDK
spoold的cpu affinity
服务技术
Sendmail
Sendmail队列异常处理
ssh
ssh密钥
ssh指定私钥和生成无密码密钥
ssh端口转发
ssh多路传输multiplexing加速
使用sslh在443端口提供多种协议服务
sshd服务不能加载主机key
Nginx
在Mac OS X环境使用HomeBrew安装Nginx
CentOS快速部署nginx+php
h5ai-时尚的HTTP服务器索引
排查Nginx应用响应时间
设置Django和Nginx uWSGI
设置Django和Nginx uWSGI的多站点
OpenResty
OpenResty安装
OpenResty快速起步
HAProxy
HAProxy和Nginx软件负载均衡对比
在CentOS7中部署HAProxy
使用HAProxy实现MySQL负载均衡
Proxy
Polipo:小巧的web代理服务器
NFS
CentOS 7 NFS设置
Samba
CentOS 7 Samba配置
NTP
NTP服务基础配置
ntpq错误"Request timed out"排查
ntp_gettime() returns code 5 (ERROR)
安全
VPN
OpenConnect
在Android上使用OpenConnect连接ocserv
安装使用OpenConnect
部署ocserv VPN服务器
Shadowsocks
Shadowsocks原理
CentOS部署Shadowsocks服务器
安装shadowsocks客户端
认证
Linux 802.1x网络认证
虚拟化
Intel
VT-x
VT-d
Intel虚拟化技术Directed I/O架构
在CentOS中部署SR-IOV
EPT
kvm
kvm虚拟化架构
virtio
virtio guest端实现:PCI, virtio设备,virtio网络和virtqueue
kvm快速起步
一:基于内核的虚拟机(KVM)概览
二:Redhat企业Linux安装KVM
三:RHEL 7.2 配置KVM主机
四:使用命令行启动第一个KVM实例
五:使用Virt-Manger(VMM)部署KVM实例
六:如何克隆一个KVM虚拟机并重置该虚拟机
七:如何在线添加/更改虚拟磁盘
八:如何在线添加/移除虚拟机的内存
九:如何在线添加/移除虚拟机的vCPU
十:更改libvirt虚拟机镜像存储路径
十一:实现Linux KVM在线迁移
十二:RHEL7 Pacemaker - 配置高可用KVM虚拟机
kvm快速起步实战
在CentOS中部署KVM
访问VM控制台
访问(修改)虚拟机镜像
使用libguestfs+NBD远程访问磁盘镜像
KVM libvirt静态IP地址和端口映射
在Gentoo中部署KVM
使用Btrfs部署KVM
Clone KVM虚拟机实战
动态调整KVM虚拟机内存和vcpu实战
Linux KVM在线迁移实战
高可用KVM虚拟机实战
使用virsh删除运行的KVM VM
kvm虚拟化部署和管理
kvm guest虚拟机时间管理
通过QEMU guest agent和spice agent增强虚拟化
kvm虚拟化存储
KVM虚拟机磁盘镜像修改指南(libguestfs:译+实践)
kvm性能
KVM性能调优实战
多队列virtio-net
使用virtio模式安装Windows
kvm性能优化
kvm最佳实践(汇总)
对于虚拟CPU的KVM性能限制
kvm热迁移
Ubuntu Guest操作系统热迁移vm内部进程OOM
kvm DEBUG
kvm vcpu unhandled rdmsr/wrmsr
xen
xen架构
Xen Hypervisor
Xen Hypervisor Debug
XenStore和xenstored
Xen网络概述
Xen内存调优
xen快速起步
xen动态添加或移除guest内存或CPU
xen动态添加usb设备到guest操作系统
xen网络
Amzaon VPC XEN SR-IOV性能
Xen多个VLANs的网络配置
xen存储
blktap块设备
在Xen中挂载iso镜像文件
xen Debug
配置XEN虚拟机Kernel core dump
VMware
VMware虚拟机的计时
docker
Docker Engine
安装
在RedHat安装Docker
在Docker中运行CentOS
在Gentoo安装Docker
Docker内核支持参数说明
在OS X安装Docker
Docker 存储
调整dokcer容器可用磁盘空间
Docker开发指南(学习和实践)
容器技术简介
安装Docker
Docker快速起步
使用Docker快速部署不同版本CentOS容器
映射Docker容器内服务端口提供外部服务
Docker架构
在开发中应用Docker
Kubernetes
Kubernetes设计架构
Atomic
VirtualBox
VirtualBox使用Tips
macOS平台虚拟化
OS X操作系统Hypervisor框架简介
在OS X中部署xhyve
Vagrant
使用Vagrant部署开发测试环境
使用Vagrant Package打包VirtualBox环境
使用Vagrant部署kvm虚拟化(libVirt)
Vagrant Box管理
使用Vagrant Snapshot创建快照备份
vagrant up下载镜像失败无法断点续传处理
vboxsf模块安装和挂载共享目录
libvirt
Qemu
libvirt pvpanic
Libvirt网络
libvirt网络架构
libvirt中的防火墙和网络过滤
libvirtd无法初始化ip6tables table 'filter'
Libvirt日志
libvirt日志
libvirtd.log日志显示"warning : qemuDomainObjTaint"
NAT网络
远程访问VNC
virsh使用
虚拟网络
xvlan
故障排查
使用tcpdump排查虚拟机网络不通
虚拟机ping延迟问题排查
性能
CPU steal
杂项
如何检测虚拟或物理主机
IaaS
OpenStack
DevStack
DevStack开发环境
安装指南
环境
安全
主机网络
网络时间协议
OpenStack软件包
SQL数据库
消息队列
Memcached
Red Hat OpenStack
架构
组件
架构案例
oVirt
oVirt架构
oVirt存储管理
部署oVirt
oVirt升级
oVirt的VNC密码设置
监控
IaaS类监控
skinken
sensu
性能
web
Progressive JPEG
网络
tcpreplay - 网络流量编辑和重放工具
"IO error: Broken Pipe"是什么意思
netperf网络带宽测试
ping时间戳
实用工具
tsar
linpack
dd测试磁盘性能
fio测试磁盘性能
通过sheel计算pi测试CPU性能
sysbench性能测试工具
开发
C
打印输出
重定向printf()到文件
Swift
在Linux上安装swift 3
Java
Android
Android起步
Nexus 5系统升级
Root Android(Nexus 5)
Android文件传输
Android文件管理和apk安装
Android截屏和录屏
在Google Play购买软件
Android开发环境准备
Gentoo Linux安装idea Jetbrains开发环境
在Nexus上安装Android 7 Nougat
在Android上运行Linux
部署Linux
在Android上部署Linux开发环境
BlueTooth
通过蓝牙共享网络
NFC近场通讯
NFC技术概览
日常生活NFC使用介绍
NFC开发基础
Sailfish
sfdroid:Sailfish/Android合体
Python
Python开发风格
开源Python项目结构
Python快速起步
pip包管理
在古老的CentOS 5上安装Python 5以及virtualenv环境
init.py文件
python编程风格
python中文本编码
检查python对象类型
python处理文本
python中main函数作用
python日志
python日期
python变量写文件
python同时读取2个文件
python列表
python数组
python字典
python过滤字符
python百分比
python三元运算
python创建其他用户可写文件
python清空文件内容
python列表字符串转浮点数
python多层嵌套字典KeyError
"PEP 8(E731): do not assign a lambda expression, use a def"
python的模块和包
python获取系统cpu数量
python nohup后台运行进程
使用Graphviz模块绘制图形
python字典内容添加到列表
python site-packages简介
python去除字符串换行
Python程序Daemon化
Python函数返回多个值
Python执行外部命令subprocess
Python实现case/switch
Python日志处理
在python日志中使用轮转和压缩
python处理systemd journal日志
Python文件系统
Python's Watchdog模块实现文件系统变化触发操作
Flask开发Web
安装Flask开发环境
DJongo开发Web
Django快速起步
快速安装Django
使用MySQL作为Django数据库
设置django的允许主机
第一个Django应用
离线安装Django
完整uninstall一个Django app
Django REST framework
Django REST framework概述
Django REST framework快速起步
Django REST framework序列化
安装Django测试驱动开发环境
TTD(测试驱动):开发环境第一个测试
TTD(测试驱动):使用单元测试测试简单首页
Ruby
Ruby快速起步
RubyGems安装和使用
Node.js
Node.js快速起步
Node.js开发环境准备
在Mac OS X下卸载Node.js
npm包管理
npm使用tips
svg2png
浏览器
Firefox
设置Firefox默认页面缩放比例zoom
PHP
Nginx php-fpm配置优化Tips
Mac
在mac上从iso镜像创建启动U盘
中文输入法
Mac平台使用VLC播放器的中文字幕显示
TextMate 2使用Tips
Sublime 3使用Tips
在Mac OS X上安装Java多个版本
使用MacBook键盘在移动设备输入
Mac网络
从safari中导出打开的tab
bird进程
在Mac上双启动方式安装Linux
创建OS X EICapitan启动啊装U盘
rEFInd工具详解
加速Time Machine备份速度
在mac上输入特殊字符
为旧主机选择最快的Mac OS X版本
Apple文件系统apfs
苹果充电器指示灯闪烁无法充电
通过SSHFS在Mac上远程开发Linux服务器程序
调整APFS文件系统出现""
shell
bash
shell的特殊变量
shell脚本中使用source和使用./cmd.sh区别
here document用法(cat << EOF)
根据命令返回结果做if判断
使用sudo在文件中添加内容
shell中的环境变量
生成随机数和随机字符串
shell中使用数组
在shell中计算
shell中一行行读取文本方法
列出所有cron定时任务
在bash计算
shell中的break和continue指令
读取文件逐行处理元素
在while循环中执行ssh中断循环的解决方法
shell中调用函数返回值的方法
shift的用法
移除换行
``符号和脚本进程
同时赋值给多个变量
在shell中比较小数的大小
sudo执行bash脚本报错"sudo: unable to execute"
获取字符串最后几个字母
sed和awk
awk和shell之间的变量传递
打印列中包含某个字符串的列
awk处理字符串搜索
sed举例
如何避免sed -i破坏文件的软链接
实用工具
脚本作为daemon运行
cut使用举例
对cpu施加负载
多路复用终端管理器screen
随机输出文本文件中的行:shuf
使用usermod禁用帐号
使用tree展示目录结构树
根据进程名pgrep和pkill
wget下载文件tips
命令执行超时检查工具timeout
脚本使用ssh的密码认证工具sshpass
命令输出处理工具xargs
vim
vim结合ctags作为开发平台
将Vim打造成Python开发平台
vim tips
使用vim作为c/c++ IDE
vim大小写转换
设置vim缩进和TAB
文档
dot
使用Graphviz生成系统诊断图
GitBook
使用GitBook撰写书籍
如何在一台主机同时运行多个GitBook
GitBook评论插件
GitBook单章节展开插件
GitBook代码段添加文件名
GitBook多国语言
GitBook嵌入视频
Hexo
使用hexo撰写blog
使用hexo theme tranquilpeak
Sphinx
使用Sphinx构建Python程序文档
编程架构
RESTful开发架构
RESTful简介
理解RESTful架构
RESTful认证和权限机制浅析
DevOps
Git
git分支的新建与合并
git合并时冲突放弃本地修改方法
git远程操作
git和dropbox冲突
Gerrit
Gitlab
部署使用的ssh key
gitlab Wiki系统gollum
Gogs
Jenkins
Ansible
起步
Ansible快速教程
安装
快速起步
清单
动态清单
Patterns
Ad-Hoc命令
Playbooks
Playbooks入门
案例:升级CentOS操作系统
案例:通过sudo安装rpm包
模块
command - 在远程节点执行一个命令
shell - 在远程节点执行命令
Dashboard
Ansible Tower开源替代:semaphore
问题排查
TAB键导致"Syntax Error while loading YAML"
paramiko主机认证报错
paramiko主机认证报错
playbook执行报错"requires the stdlib json or simplejson module"
Tips
Ansible模块shell,command
如果软件包没有安装则执行命令
不检查SSH主机fingerprint
变量和引号
ansible性能优化
使用ansible.cfg
安装rpm报错"unfinished transactions remainin"
yum安装报错"Package XXX is not signed"
yum安装报错"No Package matching"
Ansible批量复制文件
Puppet
大数据
Hadoop
快速起步
单机安装部署Hadoop
故障排查
RHEL6环境下透明大页和Hadoop高CPU sys
Spark
快速起步
单机安装部署Spark
ZooKeeper
机器学习
单变量的线性回归
机器翻译
moses
instroduce_moses
阅读
重置Kindle Paperwhite
使用calibre去除kindle DRM
附录:个人工作室构建
MacBook双操作系统启动macOS+Linux
使用Fedora作为开发平台
无线网络设置
帐号、ssh和sudo设置
部署OpenStack
远程开发Linux服务器程序
NFS设置和共享目录
Django开发设置
部署Nginx+uwsgi运行Django
HAProxy端口转发
Who am I?
Powered by
GitBook
问题排查
汇总Ansible使用中的排查问题经验
results matching "
"
No results matching "
"