在前面一篇文章中,我们看到,当使用filestore时,osd会把磁盘分成data和journal两部分.这主要是为了支持object的transaction操作.我的想法是,ceph需要具有数据保护功能,从client端写入的数据(以返回I/O Completion为标志)不能丢失.对于object为什么要使用journal,ceph官方也给出了解释: 速度:有了journal分区后,写数据速度更快.这主要是因为journal的写都是顺序写. 一致性:ceph要求I/O操作是原子性的,比如更新…
检查Linux服务器性能的关键十条命令 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top 其中一些命令需要安装sysstat包,有一些由procps包提供.这些命令的输出,有助于快速定位性能瓶颈,检查出所有资源(CPU.内存.磁盘IO等)的利用率(uti…
    最近一个朋友和我探讨关于Where 1=1 and这种形式的语句会不会影响性能.最后结论是不影响.     虽然结论正确,但对问题的认识却远远没有解决问题的根本.实际上在T-SQL语句的书写过程中经常犯得错误就是得出一个很窄的结论,然后教条式的奉若圣经,对于T-SQL领域来说,在网上经常可以看到所谓的优化守则,随便在网上搜了一些摘录如下: 不要有超过5个以上的表连接(JOIN) 考虑使用临时表或表变量存放中间结果 少用子查询 视图嵌套不要过深,一般视图嵌套不要超过2个为宜. 对出现在wh…
本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 (2)原理.架构和性能 (3)监控 对 Swift 集群的监控是必要的,特别是集群规模很大的时候. 1. 监控目标 主要的监控目标包括: 硬件故障 操作系统故障 Swift 集群健康状态 Swift 集群状态 2. Swift 提供的工具 2.1 Swift 自带的各种 Audit 工具 2.1.1…
假如需要新增一个主机名:osd4 ip:192.168.0.110的OSD1.在osd4创建挂载目录及放置配置文件的目录 ssh 192.168.0.110 (这里是从mon主机ssh到osd4主机) mkdir /ceph/osd.4 mkdir /etc/ceph 2.在osd4上格式化ext4的sda3分区,挂载分区. mkfs.ext4 /dev/sda3 mount -o user_xattr /dev/sda3 /ceph/osd.43.将mon主机的id_dsa.pub拷至osd4…
垂直层(Tier)影响性能的因素 资源层数据库性能通常考虑以下方面的优化(MySQL为例):--使用哪种存储引擎:MyISAM vs. InnoDB, MERGE, MEMORY, Federated, ARCHIVE--使用分区机制--建立必要的索引--设置缓存--调优服务器参数Table_open_cachemax_connectionOpen_files_limitThread_cache_size 客户端并发访问速度受以下几个方面的影响--事务--锁与隔离级别--并发用户数量--缓存 网…
为什么dom操作会影响性能? 在浏览器当中,dom的实现和ECMAScript的实现是分离的. 例如,在IE中,ECMAScrit的实现在jscript.dll中,而DOM的实现在mshtml.dll中:在Chrome中使用WebKit中的 WebCore处理DOM和渲染,但ECMAScript是在V8引擎中实现的,其他浏览器的情况类似. 因此,操作dom,就是通过js代码调用dom的接口,就相当于两个相互独立的模块发生了交互.这样,相比于在同一个模块当中互相调用,这种跨模块的调用它的性能损耗是…
机器角色:cloudstack虚拟机的宿主机:ceph存储机器. 事件:ceph存储的物理机器由于内存异常,需要停机更换,仅仅是把该物理机上面的虚拟机迁移走,同时启动了停机维护,然后就直接关机.结果造成重启之后ceph异常 原因:由于异常关闭,ceph进程的相关信息没有正常关闭,信息没有同步到文件系统,如pid文件等信息 现象并尝试解决: 1)检查osd的整体信息 [root@haha1~]# ceph osd tree ID WEIGHT    TYPE NAME             UP…
前几天在 code review 时发现有一段代码中存在滥用try catch的现象.其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此在很多地方都想着 try catch一下. 但实际上这种习惯不仅会让代码很难看,更会影响代码的运行性能.有些人会觉得,不就是一个 try catch 么,怎么会影响性能啊.那就让我们来测试看看吧. 实验 首先,我们看看没有try-catch情况下,进行100万次加法的耗时: long start = System.nanoTime(); int…
一.删除osd ceph osd out 1ceph osd down 1systemctl stop ceph-osd@1ceph osd crush remove osd.1ceph osd rm 1ceph auth del osd.1   二.用ceph-deploy方式新增一个osd 1.登录deploy节点,打开集群创建目录 root@ceph01:~# cd /root/my-cluster/ root@ceph01:~/my-cluster# 2.准备一块硬盘:/dev/sdb1…
目录 简介 更换OSD操作步骤 1. 故障磁盘定位 2. 摘除故障磁盘 3. 重建raid0 4. 重建osd 控制数据恢复及回填速度 简介 首先需要说明的是,ceph的osd是不建议做成raid10或者raid5的,一般建议单盘跑.在我们的环境中,为了充分利用raid卡的缓存,即使是单盘,我们还是将其挂在raid卡下做成raid0. 这样不可避免的问题就是磁盘的损坏,需要在ceph当中做一些摘除动作,同时还需要重建raid. 在更换完磁盘重建raid之后,需要重新添加osd.新的osd加入到集…
先将osd.2移出集群 root@ceph-monster:~# ceph osd out osd.2 marked out osd.2. root@ceph-monster:~# ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.79999 root default -2 0.39999 host ceph-monster 0 0.20000 osd.0 up 1.00000 1.00000 1 0…
目录 一.JVM 异常处理逻辑 二.关于JVM的编译优化 1. 分层编译 2. 即时编译器 1. 解释模式 2. 编译模式 3. 提前编译器:jaotc 三.关于测试的约束 执行用时统计 编译器优化的因素 关于指令重排序 四.测试代码 解释模式下执行测试 编译模式测试 结论 前言: 不知道从何时起,传出了这么一句话:Java中使用try catch 会严重影响性能. 然而,事实真的如此么?我们对try catch 应该畏之如猛虎么? 一.JVM 异常处理逻辑 Java 程序中显式抛出异常由ath…
一.逻辑数据库和表的设计数据库的逻辑设计.包括表与表之间的关系是优化关系型数据库性能的核心.一个好的逻辑数据库设计可以为优化数据库和应用程序打下良好的基础.   标准化的数据库逻辑设计包括用多的.有相互关系的窄表来代替很多列的长数据表.下面是一些使用标准化表的一些好处. A:由于表窄,因此可以使排序和建立索引更为迅速 B:由于多表,所以多镞的索引成为可能 C:更窄更紧凑的索引 D:每个表中可以有少一些的索引,因此可以提高insert update delete等的速度,因为这些操作在索引多的情况…
https://my.oschina.net/wangzilong/blog/1549690 ceph集群中允许使用混合类型的磁盘,比如一部分磁盘是SSD,一部分是STAT.如果针对某些业务小高速磁盘SSD,某些业务需要STAT,在创建资源池的时候可以指定创建在某些OSD上. 基本步骤有8步: 当前只有STAT没有SSD,但是不影响实验结果. 1    获取crush map [root@ceph-admin getcrushmap]# ceph osd getcrushmap -o /opt/…
前言 ceph里面的数据是以对象的形式存储在OSD当中的,有的时候因为磁盘的损坏或者其它的一些特殊情况,会引起集群当中的某一个对象的异常,那么我们需要对这个对象进行处理 在对象损坏的情况下,启动OSD有的时候都会有问题,那么通过rados rm的方式是没法发送到这个无法启动的OSD的,也就无法删除,所以需要用其他的办法来处理这个情况 处理步骤 查找对象的路径 [root@lab8106 ~]# ceph osd map rbd rbd_data.857e6b8b4567.000000000000…
近期做了一个存储过程,执行时发现非常的慢,竟然需要6.7秒! 经排查,发现时间主要都耗在了其中一段查询语句上.这个语句用于查出结构相同的两个表中,其中两个字段的任一个字段数据相同的记录. 例如,A表的结构如下所示: --会员表 CREATE Table Member ( MemberID int, --会员ID MemberName ), --会员姓名 MemberPhone ) --会员电话 ) go B表的结构与A表完全相同,假设表名为Member_Tmep. 现在Member表中有7000…
前景提要: 编写程序时,也许你不经意间,就不知不觉的定义了错误的类型,从而发生了额外的性能消耗,从而降低了效率,不要说就发生那么一次两次,如果说是程序中发生了循环.网络程序(不断请求处理的)等这些时候,减少了不必要额外的消耗,使优化程序提高效率的一种途径.不仅跬步,无以至千里,不积小流,无以至江河.优化从点点滴滴做起. 一.问题抛出: 大家先看这么一段定义 class ReserveData  { public string ReserveId;   public string patient_…
修改主机名和 /etc/hosts 关闭防火墙和 SELINUX 安装和配置 NTP ceph-deploy 节点安装 安装 ceph-deploy sudo yum install ceph-deploy -y 配置 SSH(生成公秘钥实现免密访问) 添加 OSD ceph-deploy disk zap ceph2:/dev/vdb ceph3:/dev/vdb ceph-deploy osd prepare ceph2:/dev/vdb ceph3:/dev/vdb ★ 注意:[prepa…
尝试一.直接重新激活所有osd 1.查看osd树 root@ceph01:~# ceph osd tree ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY -1 0.29279 root default -2 0.14639 host ceph01 0 0.14639 osd.0 up 1.00000 1.00000 -3 0.14639 host ceph02 1 0.14639 osd.1 down 0 1.00000 发现osd.…
redis-benchmark测试工具的命令使使用方法及参数如下:redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>] -h <hostname>      Server hostname (default 127.0.0.1) -p <port>          Server port (default…
原文地址:https://www.cnblogs.com/xuxiaona/p/4962727.html 近期做了一个存储过程,执行时发现非常的慢,竟然需要6.7秒! 经排查,发现时间主要都耗在了其中一段查询语句上.这个语句用于查出结构相同的两个表中,其中两个字段的任一个字段数据相同的记录. 例如,A表的结构如下所示: --会员表 CREATE Table Member ( MemberID int, --会员ID MemberName varchar(50), --会员姓名 MemberPho…
有人问了这样的问题:"我工作的公司正极力反对用生成的调试信息构建发布模式二进制文件,这也是我注册该类的原因之一.他们担心演示会受到影响.我的问题是,在发布模式下生成符号的最佳命令行参数是什么?还有什么地方我可以参考,以表明不应该有性能问题.“ 回答是:不,生成PDB文件对性能没有任何影响.至于我也可以给你指出的参考资料,我在网上还没有找到任何能回答确切问题的资料,所以让我依次介绍.NET和本机开发. Eric Lippert写了一篇很棒的文章,优化开关是做什么的?他讨论了编译器和即时(JIT)编…
Attribute很方便,标记一个类,设置这个类的额外信息,而不用另外设计存储这个信息. 那么频繁大量使用Attribute会不会影响类的性能. 为此,简单测试. 代码: 略............................................................................................................................. (节约大家时间,反正看结果就行了) 由此得出结论: 不会 1.当类初始化时…
前言 之前写过一篇关于查询OSD的运行的CPU的情况的分享,本篇是讲的获取内存占用的,代码包括两种输出,一种是直接的表格,一种是可以方便解析的json 代码 直接上代码,python才用不久,所以可能代码实现比较低级,主要是看实现的方法 #!/usr/bin/env python # -*- coding: UTF-8 -*- import os import sys import json import psutil import commands from prettytable impor…
前言 如果你是新手,应该出现过敲盘符的时候,敲错的情况,有些操作可能没什么问题,查询类的操作都没问题,但是写入的情况,就可能比较麻烦了,当然老手也可能有误操作,本篇将讲述在误操作把分区表给弄丢了的情况,来看看我们应该如何恢复 实践过程 我们现在有一个正常的集群,我们假设这些分区都是一致的,用的是默认的分区的方式,我们先来看看默认的分区方式是怎样的 破坏环境 [root@lab8106 ceph]# ceph-disk list ··· /dev/sdb : /dev/sdb1 ceph data…
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/117 首先说明一下MySQL的版本: mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.17 | +-----------+ 1 row in set (0.00 sec) 表结构: mysql> desc test; +--------+-------------…
服务器性能   cpu  可用内存大小  网络   IO (增加IO子系统) mysql 存储引擎 数据库服务器配置参数(主要优化方向)     数据库结构设计,sql语句.   慢查询…
自网站诞生以来,响应速度/响应时间一直都是大家关心的话题,而速度慢乃是网站的一个杀手,正当大家以为四核和宽带能力的提升能够解决这些问题时,Wi-Fi和移动设备为热点移动互联网又悄然兴起. 在2006年,Amazon曾做过一个报道,响应时间每提高100ms,他们便会增加1%的收入.优化的价值已显而易见,但到底多快才是个标准,或者速度有多快才算够快呢?那么到底什么是响应时间,它有多大的价值? 从技术上来讲,响应时间是指用户发送一个指令(例如,一个页面请求)浏览器接收到完成加载的时间.定义看起来非常简…
一,前言 首先说明一下MySQL的版本: mysql> select version();+-----------+| version() |+-----------+| 5.7.17 |+-----------+1 row in set (0.00 sec) 表结构: mysql> desc test;+--------+---------------------+------+-----+---------+----------------+| Field  | Type        …