- 博客(1642)
- 资源 (107)
- 收藏
- 关注
原创 NUMA架构下的API
CPU架构分类 我们知道架构分为3种,SMP、NUMA和MPP的。分别表示Symmetric MultiProcessing,Non-Uniform Memory Access ,Massive Parallel Processing NUMA APINUMA API currently supports four policies: •Default = All...
2018-07-21 18:26:18 607
原创 Linux块层技术全面剖析-v0.1
Linux块层技术全面剖析-v0.1perftrace@gmail.com 前言网络上很多文章对块层的描述散乱在各个站点,而一些经典书籍由于更新不及时难免更不上最新的代码,例如关于块层的多队列。那么,是时候写一个关于linux块层的中文专题片章了,本文基于内核4.17.2。因为文章中很多内容都可以单独领出来做...
2018-07-21 18:12:34 6954
原创 SQL Server性能监控分析
3.SQL Server性能监控分析 DMVDBA通常想知道正在运行的语句已经执行了多久了?可以使用Sqlserver profiler来捕获语句的开始时间,和现有时间比较,但是在生产环境下通常会对性能有负面影响,所以通常不建议在非必要的前提下在生产环境使用SQL Server Profiler。DMV(Dynamic Management Views,动态管理视图),其...
2018-07-19 12:11:09 8593
原创 oracle调优实战记录
2C调整参数*.open_cursors=3000*.processes=3000db_cache_size=127488Mshared_pool_size=16G*.db_cache_size=751082405888*.java_pool_size=3758096384*.large_pool_size=536870912*.shared_pool_s...
2018-07-19 12:04:48 729
原创 Oracle查询等待问题
PX Deq:execute ReplyOccurs when the query coordinator is waiting for a response from a parallel slave. This is normally considered an idle event, but can cause excessive CPU in some cases.Sol...
2018-07-19 12:03:38 976
原创 HammerDB测试SQL Server
TPC-H概念不同数据规模下比较是没有意义的。HammerDB测试结果和官方发布工具性能结果不能直接对比。 TPC-H schema 预置条件安装SQL SERVER,HammerDB工具。HammerDB工具,官网下载:http://www.hammerdb.com/ ,直接安装WINDOWS版本即可。安装SQL Server通...
2018-07-19 12:02:49 2631
原创 导出SYBASE数据库到ORACLE
导出SYBASE数据库到ORACLE bcp 出来 sql loader 进去#bcp SD2 out SD2.txt -c -t -U sa -P test -S sybasename然后将数据进行清理,最后使用sqlloader将数据导入到ORACLE。在数据转换过程一种要多加测试...
2018-07-19 12:01:17 983
原创 汇编学习笔记
基本概念电子计算机的最小信息单位是bit,也就是一个二进制位。8个bit组成一个Byte,也就是一个字节。 总线从逻辑上分为3类,地址、控制和数据总线。 典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。8086 CPU有14个寄存器,每个寄存器有一个名称,分别是AX,BX,CX,DX,SI,DI,SP,BP,C...
2018-07-19 12:00:40 351
原创 sql server区分大小问题处理
区分大小写和字符集有关,修改字符集为服务端为: SQL_Latin1_General_CP1_CI_AS 查看数据库发现是:Latin1_General_Bin_BIN 指定使用向后兼容的二进制排序顺序。 _BIN2 指定使用 SQL Server2005 中引入的码位比较语义的二进制排序顺序。 _Stroke 按笔划排序 _CI(CS) 是否区分大小写,CI不区分,CS区分 _...
2018-07-19 11:59:56 297
原创 quick-cocos2d-x常见问题汇总
quick-cocos2d-x常见问题汇总竖屏或横屏显示设置config.lua文件中如下参数(设置的是“虚拟分辨率”)CONFIG_SCREEN_ORIENTATION = "portrait"-- design resolutionCONFIG_SCREEN_WIDTH = 640CONFIG_SCREEN_HEIGHT = 960-- auto scale mod...
2018-07-19 11:41:41 682
原创 LUA语法学习笔记
LUA语法学习笔记LUA介绍LUA介绍可以看下百度百科上的摘要:Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993...
2018-07-19 11:41:01 330
原创 SPEC CPU极限性能调优
优化SPEC CPU,测试到世界第一。https://v.youku.com/v_show/id_XMzczMDMyOTI5Mg==.html?spm=a2h3j.8428770.3416059.1
2018-07-18 22:20:41 3531
原创 rac升级opatch包
补丁包ORACLE的补丁包查找id为1454618.1的文档直接加载进入。OPatch下载地址:https://updates.oracle.com/download/6880880.html网上指南:http://www.mamicode.com/info-detail-1161159.htmlOpatch包p21523375_112040_Linux-x86-64....
2018-07-18 10:08:32 758
原创 btt工具详解
在之前的文章中介绍了如何使用blktrace 以及其工作原理和架构。我们知道blktrace 跟踪块设备的统计信息,每个CPU会有一个文件存储,然后通过blkparse可以将这些文件整合成一个文件来显示。 不过blkparse显示的文件过于庞大,而通过btt分析后会发现监控数据变得更加有意义。示例监控获得数据#blktrace -d /dev/sda ...
2018-07-17 16:31:18 3687
原创 《好奇程序员之路——黑客入门指南》
《好奇程序员之路——黑客入门指南》很久之前整理的网络电子书籍,pdf下载链接如下,https://pan.baidu.com/s/1avtE8muRz30vslU9O9OjOQ
2018-07-13 15:13:00 1879
原创 linux驱动设备模型:设备模型
本篇是关于linux的设备模型,将会覆盖相关的绝大部分知识,以及实践操作。希望这篇材料让大家基本掌握linux驱动设备模型,从而写出更加优秀的linux驱动。linux统一的设备模型,提供了对电源管理和系统关机 、用户空间的通讯、可热插拔设备 、设备类别 、对象生命期 的广泛支持。Linux 设备模型代码负责所有这些方面, 驱动代码作者只需要充分信任这些代码即可,但是, 理解设备模型绝对是一个好事...
2018-07-12 16:32:14 444
原创 NVMe驱动详解系列——第一部分:NVMe驱动初始化和注销
NVMe驱动详解系列——第一部分:NVMe驱动初始化和注销 pdf版本下载:https://pan.baidu.com/s/1wtJKcn3ml1o3fb21VEUIOQ
2018-07-10 16:28:01 8837 2
原创 linux开发调试环境下的内核配置
针对常用的linux开发环境,汇总了debug所需的内核配置kgdb:#CONFIG_STRICT_KERNEL_RWX is not set#CONFIG_STRICT_MODULE_RWX is not setCONFIG_FRAME_POINTER=yCONFIG_KGDB=yCONFIG_KGDB_SERIAL_CONSOLE=yCONFIG_KGDB_KDB=yCONFIG_DEBUG_...
2018-07-06 20:11:30 1167
原创 linux驱动常用输出和调试手段
结合scull驱动代码,来观察其实现使用。1. 创建/proc文件调试在/proc 下的每个文件都绑到一个内核函数上, 当文件被读的时候即时产生文件内容.使用 /proc 的模块需要包含 <linux/proc_fs.h>当一个进程读模块的 /proc 文件, 内核分配了一页内存(就是说, PAGE_SIZE 字节), 驱动可以写入数据来返回给用户空间. 那个缓存区传递给你的函数,...
2018-07-05 18:59:58 1834
原创 linux字符设备开发
本篇基于ldd3中第三章,原书自带的源码随着内核版本更新已经不能运行,代码需要进行升级,文章参考代码能在内核版本4.17.2运行。1. 分配设备编号建立一个字符驱动时,需要做的第一件事是获取一个或多个设备编号来使用.此目的必要的函数是 register_chrdev_region.注册字符设备函数执行后会出现在/proc/devices和sysfs中:int register_chrdev_r...
2018-07-05 15:36:01 716
原创 Linux内核中的锁——知识点
系统中的锁,说简单点就是为了保护共享资源,从而更好的实现系统并发。本文对内核中的相关常用锁进行了介绍以及部分使用。1. 信号量第一个经验法则是设计驱动时在任何可能的时候记住避免共享的资源。全局变量远远不是共享数据的唯一方式信号量Semaphores是一个单个整型值, 结合有一对函数, 典型地称为 P 和 V 。当信号量用作互斥,阻止多个进程同时在同一个临界区内运行 -- 它们的值将初始化为 1...
2018-07-04 15:20:48 586
原创 linux中taskset
taskset工具通过util-linux包提供。允许管理员来获取并设置运行进程的亲和度,或者运行进程到制定处理器亲和度。 taskset不能保证内存是本地分配。如果要实现内存也是本地分配,红帽建议使用numactl。 设置运行进程的CPU亲和度,运行如下命令: task set -c processors pid 启动进程也可以实现亲和度绑定,运行如下...
2018-07-03 19:31:33 1178
原创 linux中numad
numad是一个自动numa亲和度管理进程。监控NUMA拓扑和资源使用,来动态提高NUMA资源分配和管理。 如果numad使能,会覆盖NUMA balancing动作。启动命令:numad日志在 /var/log/numad.log中停止命令:numad -i 0制定进程命令如下:nomad -S 0 -p pid 将numad作为服务启动:#systemcl sta...
2018-07-03 19:31:10 2944
原创 numastat工具
numastat工具是由numactl包提供的,显示基于NUMA的进程和操作内存统计信息(例如命中和丢失)。默认的numastat命令显示如下: numa_hit 成功在本node命中到次数。 numa_miss 本因分配在其他NODE的内存,由于其他节点内存太少,导致内存分配在本node的页数量。 每次numa_miss都有对应的 numa_foreign事件在其他node上。 numa_for...
2018-07-03 19:30:24 4533 1
原创 红帽 x86_energy_perf_policy
x86_energy_perf_policy 工具允许管理员定义相关性能和能效。通过kernel-tools包来提供。 查看当前策略,运行如下命令:x86_energy_perf_policy -r 设置新策略,运行如下命令:x86_energy_perf_policy profile_name profile_name名字可以是如下: performance:默认设置,不会考虑...
2018-07-03 19:29:58 1330
原创 谷歌浏览器常用插件
打开插件在谷歌浏览器的设置中找到【更多工具】打开【扩展程序】页面或者直接输入:chrome://settings/扩展程序点击右上角的菜单→工具→扩展程序或者直接在地址栏输入chrome://extensions/插件chrome://plugins/第三方crx格式插件文件把下载好的第三方crx插件拖拽到此界面会弹出是否添加的窗口,点击添加即可Chrome自带的管理工具点击左上角应用图标或者在地...
2018-07-03 19:26:09 1885
原创 linux内核打印等级
#define KERN_EMERG KERN_SOH "0" /* system is unusable */#define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */#define KERN_CRIT KERN_SOH "2" /* critical condit...
2018-07-02 19:59:29 592
原创 linux内核权限参数
#define S_IFMT 00170000#define S_IFSOCK 0140000#define S_IFLNK 0120000#define S_IFREG 0100000#define S_IFBLK 0060000#define S_IFDIR 0040000#define S_IFCHR 0020000#define S_IFIFO 0010000#define ...
2018-07-02 09:56:42 762
原创 linux内核错误码
#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EINTR ...
2018-07-02 09:45:21 1835
原创 Linux中动态探针kprobes
Kprobes 是 Linux 中的轻量级装置,可以将断点插入到正在运行的内核之中。Kprobes 可以地收集处理器寄存器和全局数据结构等调试信息。甚至可以使用 Kprobes 来修改 寄存器值和全局数据结构的值。Kprobes 向运行的内核中给定地址写入断点指令,插入一个探测器。 执行被探测的指令会导致断点错误。Kprobes 钩住(hook in)断点处理器并收集调试信息。Kprobes 甚...
2018-06-20 21:52:23 1804
原创 systemtap系列之实用脚本
安装完systemtap相关rpm包之后,在路径/usr/share/systemtap/testsuite/systemtap.examples/或者/usr/share/doc/systemtap-client-3.0/examples/network/中有所有可实用的脚本。1. 网络查看系统中每个进程的网络传输情况:nettop.stp追踪系统中产生的网络流量。socket-trace....
2018-06-20 19:50:51 1070
原创 systemptap系列之用户空间探针
起初systemtap 是聚焦于内核空间的,因为用户层的诊断工具真的很多,后来还是在0.6版本时候可以探测用户进程了,既然可以用,那就用它吧。 Systemtap用uprobes 模块来执行用户层的探测,在内核3.5以后,已经包含了,可以查看内核的config文件中CONFIG_UPROBES参数。1. 用户层事件用户事件可以通过PID来限定,也可以通过可执行路径来限定。 ...
2018-06-20 19:49:01 464
原创 Systemtap系列之语法专辑
1. 常用技巧systemtap可以实现交叉编译:编译可执行模块如下:stap -r kernel_version script -m module_name运行命令如下:staprun module_name.kostap命令会读取脚本的指令,并翻译成C代码,编译成内核模块加载到内核。Staprun命令运行指令,并不会去翻译或编译。使用-v参数可以输出会话很多信息。使用-vvv可以输出更加详...
2018-06-14 18:18:15 1293
原创 诊断实验室二文件IO
这篇我们来看下如何定位IO 瓶颈问题,并找出个别慢速的IO操作。测试源码如下:https://github.com/kernel-z/linux-tracing-workshop/blob/master/logger.c编译如下:#gcc -g -fno-omit-frame-pointer -O0 -pthread logger.c -o logger其中-fno-omit-frame-poin...
2018-06-12 18:15:47 344
原创 诊断实验室一启动中打开文件错误
本系列主要是充分使用eBPF来延时如何定位实际问题,在生产中碰到类似问题也可以采用文中所描述方法。 先编译源码,代码下载位置:https://github.com/kernel-z/linux-tracing-workshop/blob/master/server.c 代码就是模拟一个应用启动,启动过程会去读取配置文件,如果没有配置文件会循环一直去读永不...
2018-06-12 18:13:28 461
原创 通过msr-tools读取CPU寄存器的值
通过msr-tools工具包可以用来来读取或写MSR寄存器值。MSR是Model Specific Register的全称。 MSR是为了设置CPU 的工作环境和标示CPU 的工作状态,包括温度控制,性能监控等 1. Thermal 2. Frequency 3. C State 4. Microcode 5. EIST 6. TM 7. Key Features Of CPU ...
2018-06-11 15:30:04 6916
原创 通过CPUID命令访问CPU详细信息
通过cpuid命令,来获取CPU的信息,这个命令的底层是通过CPUID指令。获取的内容比/proc/cpuinfo要详细很多,如果要获取详细信息就使用cpuid命令吧。例如,执行#cpuidCPU 0: vendor_id = "GenuineIntel" version information (1/eax): processor type = primary process...
2018-06-11 14:41:57 6848 1
DB2_docview
2018-07-21
Oracle-NUMA绑定脚本
2018-07-21
HP Superdome X扩展性
2018-07-21
Linux块层技术剖析-v0.1
2018-07-21
Infrastructure_Matters_POWER8_vs_XEON_x86-IBM官网引导的报告-中文
2018-07-19
oracle数据库大会6共6个
2018-07-19
oracle数据库大会4
2018-07-19
oracle数据库大会材料1
2018-07-19
CON1101_Crawford_jr-CON1477_Hu_ExadataMAA-Best-Practice_v2_EN_
2018-07-19
459334-oracle_vm3-application-driven_virtualization
2018-07-19
129255-oracle_timesten_in-memory_database
2018-07-19
SPECjEnterprise 2010 Performance Update
2018-07-19
oracle循环插入
2018-07-19
SQL Server健康查询
2018-07-19
HammerDB测试TPC-H
2018-07-19
MRD_Early_Bird_Training
2018-07-19
oracle-实时决策(In-memory)-案例-材料
2018-07-19
DWGL数据仓库全球领导课程
2018-07-19
Exadata-的核心进程-SHOUG成员Steven.Lee_.pdf
2018-07-19
DTCC2016中国数据库技术大会会议全部材料
2018-07-19
DTCC2015中国数据库技术大会会议全部材料
2018-07-19
RDMA编程用户手册-官方中文版
2019-03-23
09 SYBASE官方文档合集
2018-07-24
Linux虚拟文件系统全面剖析——打开、读、写逻辑v0.1
2018-07-24
db2perfsupport使用指南
2018-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人