精华内容
下载资源
问答
  • Linux数据库服务器的性能调优

    千次阅读 2016-01-31 21:14:29
    Linux数据库服务器的性能调优数据库服务器需要耗用大量系统资源,服务器性能高度依赖于内核管理这些资源的有效程度。这方面的低效率会导致在内核空间中耗费过多时间。另外,某些特定的低效情况会导致锁冲突,这会...

    Linux数据库服务器的性能调优

    数据库服务器需要耗用大量系统资源,服务器性能高度依赖于内核管理这些资源的有效程度。这方面的低效率会导致在内核空间中耗费过多时间。另外,某些特定的低效情况会导致锁冲突,这会导致扩展性低下和串行化问题。这两个问题都会严重影响数据库性能,因为这两个问题或者消耗正常情况下应提供给数据库使用的CPU周期,或者强制数据库应用在某个内核资源上串行工作。

    数据库体系结构

    数据库体系结构特征:

    1. 有组织的表/视图,通常记录和保存在原始字符设备或文件系统上。
    2. 全局内存区域
    3. 事物日志机制

    小型数据库在最简单的调优:

    1. 磁盘I/O的负载平衡
    2. 确保日志记录设备不会受到普通用户进程的干扰
    3. 确保存在着充足的可用内存,从而可以对事物进行缓存而不必完全基于磁盘操作

    数据库中可进行性能调优的几个领域:

    • I/O调优
    • 队列长度和响应时间调优
    • 负载平衡调优
    • 全局内存调优
    • 日志设备调优

    当代商用数据库可以分为公用存储器类型或者无共享资源类型。共用存储器的数据库常常能够更好地执行在线事物处理(Online Transaction Processing,OLTP),而无共享资源的数据库更适用与决策支持查询类型的数据库。提供WEB服务对于Apache而言,是Linux服务器及其网络协议最广泛的用途之一。Apache拥有丰富的功能,但它并非针对高性能目标而设计。总线速率、总线吞吐率以及工作负荷生成的总线流量对于改进Linux网络栈的性能至关重要。为了消除或减少数据流经总线的次数以及为了减少访存次数而对Linux网络栈实施的任何改进都可以改善Linux软件栈性能。决策支持系统(Decision Support System, DSS)

    展开全文
  • 2G内存的MYSQL 数据库服务器优化.
  • linux系统数据库服务器的性能调优方法论

    千次阅读 多人点赞 2020-10-29 09:53:19
    对于 DSS中长期运行的查询操作而言,在实现了复杂的查询优化器以及复杂的内存(分类/散列区域)参数控制的数据库中, 更大的块尺寸会提高数据库扫描速度, 例如 8KB(如果数据库支持, 或者可选更大尺寸)。在工作负荷...

    一、I/O调优

    在进行 I/O调优时必须做出许多决策。是否使用原始设备或文件系统?是否使用直接 I/O?应该为数据库选取多大的块尺寸? 如果正在严格地执行在线事务处理(其特征为小型的随机读/写操作)工作负荷, 则应该选择较小的块尺寸如 2KB。 对于 DSS中长期运行的查询操作而言,在实现了复杂的查询优化器以及复杂的内存(分类/散列区域)参数控制的数据库中, 更大的块尺寸会提高数据库扫描速度, 例如 8KB(如果数据库支持, 或者可选更大尺寸)。在工作负荷同时包含 OLTP 和 DSS的情况下该如何处理?这时需要对数据库参数的调优加以仔细考虑。 在某些情况下有必要做出折中选择, 也许4KB的块大小比较合适。

    二、队列长度与响应时间

    在Linux系统中, vmstat是很好的 I/O带宽测量工具。该工具的“ I/O section” 结果中bi和bo两列原本分别表示输入到块设备以及从块设备中输出的块数,如vmstat的man帮助命令所述。然而,在各种 Linux发行版本中这些列实际上以 KBps为单位报告字符设备或块设备(文件系统)在测量期间的传输率。对于这两种工作负荷,如果队列长度大于 1, 则存在着某种冲突的可能性。 对于 OLTP来说, 超过 50ms的响应时间是需要解决的问题。

    三、负载平衡

    Linux系统提供了多个工具来判定数据库系统是否需要负载平衡。完成这项工作的一种简单方法是使用 iostat。

    下面给出了 iostat –x的输出示例:

    linux系统数据库服务器的性能调优方法论

    如果未使用软件分条(striping)能力,则应该确保数据库中全部的表都均匀地分布到所有磁盘上。在该基准测试的这个只读操作部分中,磁盘 sdi实际上正在执行写操作,因为日志显然保存在该磁盘上。日志应该位于单独的带卷(stripe volume)上,在可能的情况下甚至位于单独的磁盘上,以便磁盘 sdi的速度不会受到基准测试其他方面的影响。

    四、全局内存

    对于 OLTP工作负荷来说,通常应该利用数据库的全局缓存将尽可能多的 I/O操作移至内存中。多数数据库都提供了工具来查看用户事务是否被缓存,包括关于脏(dirty)缓冲区和已用缓冲区的统计数据。在 Oracle 中若要适当估测内存,需要设置参数database_block_ buffers。这只需确定数据库专用的空闲内存量,然后将该值除以database_block_size即可,如下所示:

    4GB内存中为数据库分配 2.5GB,因此 database_block_buffers取值为 2684354560 /4096= 655360

    下面给出一个 db_block_buffers公式的示例:

    linux系统数据库服务器的性能调优方法论

    依赖于主关键字索引查询的 OLTP/WEB工作负荷受益于通过大型缓冲池来缓存结果并减少I/O子系统的I/O吞吐率(每秒的I/O工作量)瓶颈。DSS工作负荷常常需要执行大型表扫描操作并返回众多表格行结果。 针对这类工作负荷, 通过为大量sort和join操作分配内存,可以避免在临时磁盘空间上发生会损害高I/O带宽/吞吐率(MBps)的溢出现象。这通过配置 hash和 sort尺寸这些数据库参数来完成。这些工作负荷的全局缓存容量不必很大——可以比 OLTP工作负荷所需的全局缓存小多个数量级。

    下面给出一个使用 vmstat来确定空闲内存和已用内存的示例, 随后对各个相关列加以描述。注意该例中包含vmstat在正常情况下可返回的多个数据列。

    linux系统数据库服务器的性能调优方法论

    • free 列以千字节为单位显示。 如果仍存在着可用的空闲内存, 那么这可能并不是制约资源。
    • swpd 列以千字节为单位显示,报告所用的虚存量或被换出到磁盘上的内存量。
    • si 列给出在报告期间从磁盘上换入的内存量。
    • so 列给出在报告期间换出到磁盘(虚存)上的内存量。

    如果swpd值较大并且从 si 和 so列中可发现大量交换活动,则可能需要添加更多内存或减少为数据库分配的内存量,从而为应用程序保留更多内存。要确保存在着可分配给数据库的内存。另外,这还假定了Linux中已经考虑到锁定数据库的全局缓存区域。

    也可以使用 Linux的 top命令来获得关于占用内存较多的进程的更详细信息。在运行 top命令时输入 h,可以得到选项列表;输入 m可根据常驻内存使用情况进行排序,从而确定哪些进程消耗的内存最多。 Linux的/usr/bin/top工具比 vmstat具有更大的干扰,也占用更多 CPU时间。因此首先应使用 vmstat,在需要额外信息时再使用 top工具。

    应记住, 在 32位 Linux系统上, 内存容量可能会超出数据库软件的寻址能力。 在这种情况下, 如果出现 I/O问题, 应该寻找新型的空闲内存使用方式。 为了减少 I/O操作,应尽量使用内存。在某些情况下, 可以利用数据库的临时空间区域, 尤其对于使用了 sort或 hash区域的具体进程(典型存在于 DSS工作负荷中)。要确保控制这些区域的数据库参数被置为最大值(除以数据库代理的数目),同时仍不超过系统的内存(包括内核)范围。

    五、 日志设备

    当其他所有瓶颈都被解决后,对日志记录设备的优化往往将最终决定 OLTP数据库的性能。尽量将日志文件与所有其他数据库文件加以分离是很重要的。

    下一步应决定使用原始设备还是文件系统设备来运行日志文件。历史上,原始设备对于支持数据库来说是首选的日志记录设备。有些数据库使用了直接 I/O文件系统,其性能可以达到原始设备的 5%。 另一些(通常为非商用的)数据库则利用 Linux提供的缓冲机制来进行文件系统缓冲。建议在具体设定的环境中对这些方案进行直接比较。

    展开全文
  • 我们不仅要选择适合自己口味的NoSQL数据库,比如基于内存的Memcache或Redis,更适合企业级架构的Cassandra或HBase,同时,针对Linux服务器优化也必不可少。另外,还有一个问题需要探讨。我们在尝试NoSQL数据库的...
  • Linux服务器性能优化

    千次阅读 2016-10-20 10:34:17
    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要目的是高效处理非交互式进程...

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要目的是高效处理非交互式进程,响应时间并不是那么重要,相反,能够长时间处理高负载才是最关键的。Linux高可用服务器集群解决方案让IT系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级。

        Linux服务器有各种用途,如Web服务器或分支机构内部服务器,CMS或CRS服务器,文件服务器(为Windows和/或Linux用户服务),VoIP电话服务器,邮件或域名服务器,数据库服务器,云计算配置中的基础设施节点等。

        Linux功能丰富、强大、灵活,你可以用它完成各种任务,在这篇文章中,我们将讨论一些提高Linux服务器性能的技巧。

    1、为磁盘I/O调整Linux内核电梯算法

        在选择文件系统后,有一些内核和挂载选项可能会影响到它的性能表现,其中一个内核设置是电梯算法,通过调整电梯算法,系统可以平衡低延迟需求,收集足够的数据,以有效地组织对磁盘的读和写请求。

     

    2、禁用不必要的守护进程,节省内存和CPU资源

        每台服务器上都运行着许多守护进程或服务,而具有讽刺意味的是,有很多通常不是必需的,这些服务没有发挥作用,但却消耗了宝贵的内存和CPU时间。此外,它们可能将服务器置于危险境地,多运行一个服务就等于多向黑客打开一扇长驱直入的门,因此,你应该将它们从服务器移除,禁用它们最大的好处是可以加快启动时间,释放内存。另外,你可以减少CPU需要处理的进程数,禁用它们的另一个好处是增强服务器的安全性,因为越少的守护进程意味着可被攻击和利用的漏洞越少。

        下面是一些应该被禁用的Linux守护进程,默认情况下,它们都是自动运行的:

     序号 守护进程 描述
     1 Apmd 高级电源管理守护进程
     2Nfslock 用于NFS文件锁定 
     3Isdn ISDN Moderm支持 
     4Autofs 在后台自动挂载文件系统(如自动挂载CD-ROM) 
     5Sendmail 邮件传输代理 
     6Xfs X Window的字体服务器 

     

    3、关掉GUI

        一般说来,Linux服务器是不需要GUI的,所有管理任务都可以在命令行下完成,因此最好关掉GUI,重定向X显示或通过一个Web浏览器界面显示。为了禁用GUI,“init level(启动级别)”应该被设置为3(命令行登录),而不是5(图形登录),如果需要GUI,可以随时运行startx进入图形用户界面。

     

    4、清理不需要的模块或功能

        在服务器软件包中有太多被启动的功能或模块实际上是不需要的(如Apache中的许多功能模块),仔细查看Apache配置文件,确定FrontPage支持或其它额外的模块是否真的要用到,如果不需要,应该毫不犹豫地从服务器禁用掉,这样有助于提高系统内存可用量,腾出更多资源给那些真正需要的软件,让它们运行得更快。

     

    5、禁用控制面板

        在Linux中,有许多流行的控制面板,如Cpanel,Plesk,Webmin和phpMyAdmin等,相信每个Linux初级用户都很喜欢这些控制面板,但是,禁用掉这些软件包可以释放出大约120MB内存,因此,我强烈建议禁用掉这些控制面板,除非它们真的需要用到,它们可以通过PHP脚本(尽管有些不安全),或命令行命令启用,这样做后,内存使用量大约可以下降30-40%。

     

    6、改善Linux Exim服务器性能

        有许多种方法改善服务器的Exim性能,其中一个办法是使用DNS缓存守护进程,它可以降低解析DNS记录需要的带宽和CPU时间,DNS缓存通过消除每次都从根节点开始查找DNS记录的需求,从而改善网络性能,Djbdns是一个非常强大的DNS服务器,它具有DNS缓存功能,Djbdns比BIND DNS服务器更安全,性能更好,可以直接通过http://cr.yp.to/下载,或通过Red Hat提供的软件包获得。

     

    7、使用AES256增强gpg文件加密安全

        为了提高备份文件或敏感信息的安全,许多Linux系统管理员都会使用gpg进行加密,在使用gpg时,最好指定gpg使用AES256加密算法,AES256使用256位密钥,它是一个开放的加密算法,美国国家安全局(NSA)都使用它保护绝密信息,没有什么比它更安全的了。

     

    8、远程备份服务安全

        安全是选择远程备份服务最重要的因素,大多数系统管理员都害怕两件事:(黑客)可以删除备份文件,不能从备份恢复系统。

        为了保证备份文件100%的安全,备份服务公司提供远程备份服务器,使用scp脚本或RSYNC通过SSH传输数据,这样,没有人可以直接进入和访问远程系统,因此,也没有人可以从备份服务删除数据。在选择远程备份服务提供商时,最好从多个方面了解其服务强壮性,如果可以,可以亲自测试一下。

     

    9、更新默认内核参数设置

        为了顺利和成功运行企业应用程序,如数据库服务器,可能需要更新一些默认的内核参数设置,例如,2.4.x系列内核消息队列参数msgmni有一个默认值(例如,共享内存,或shmmax在Red Hat系统上默认只有33554432字节),它只允许有限的数据库并发连接,下面为数据库服务器更好地运行提供了一些建议值(来自IBM DB2支持网站):

    kernel.shmmax=268435456 (32位) kernel.shmmax=1073741824 (64位) kernel.msgmni=1024 fs.file-max=8192 kernel.sem=”250 32000 32 1024″

     

    10、优化TCP

        优化TCP协议有助于提高网络吞吐量,跨广域网的通信使用的带宽越大,延迟时间越长时,建议使用越大的TCP Linux大小,以提高数据传输速率,TCP Linux大小决定了发送主机在没有收到数据传输确认时,可以向接收主机发送多少数据。

     

    11、选择正确的文件系统

        使用ext4文件系统取代ext3

    ● Ext4是ext3文件系统的增强版,扩展了存储限制

    ●它具有日志功能,保证高水平的数据完整性(在非正常关闭事件中)

    ●在非正常关闭和重启时,它不需要检查磁盘(这是一个非常耗时的动作)

    ●更快的写入速度,ext4日志优化了硬盘磁头动作

     

    12、使用noatime文件系统挂载选项

        在文件系统启动配置文件fstab中使用noatime选项,如果使用了外部存储,这个挂载选项可以有效改善性能。

     

    13、调整Linux文件描述符限制

        Linux限制了任何进程可以打开的文件描述符数量,默认限制是每进程1024,这些限制可能会阻碍基准测试客户端(如httperf和apachebench)和Web服务器本身获得最佳性能,Apache每个连接使用一个进程,因此不会受到影响,但单进程Web服务器,如Zeus是每连接使用一个文件描述符,因此很容易受默认限制的影响。

        打开文件限制是一个可以用ulimit命令调整的限制,ulimit -aS命令显示当前的限制,ulimit -aH命令显示硬限制(在未调整/proc中的内核参数前,你不能增加限制)。

    Linux第三方应用程序性能技巧

        对于运行在Linux上的第三方应用程序,一样有许多性能优化技巧,这些技巧可以帮助你提高Linux服务器的性能,降低运行成本。

     

    14、正确配置MySQL

        为了给MySQL分配更多的内存,可设置MySQL缓存大小,要是MySQL服务器实例使用了更多内存,就减少缓存大小,如果MySQL在请求增多时停滞不动,就增加MySQL缓存。

     

    15、正确配置Apache

        检查Apache使用了多少内存,再调整StartServers和MinSpareServers参数,以释放更多的内存,将有助于你节省30-40%的内存。

     

    提高监控/故障排除能力的技巧

    下面是一些提高Linux服务器监控和故障排除的技巧:

    16、分析Linux服务器性能

    提高系统效率最好的办法是找出导致整体速度下降的瓶颈并解决掉,下面是找出系统关键瓶颈的一些基本技巧:

    ● 当大型应用程序,如OpenOffice和Firefox同时运行时,计算机可能会开始变慢,内存不足的出现几率更高。

    ● 如果启动时真的很慢,可能是应用程序初次启动需要较长的加载时间,一旦启动好后运行就正常了,否则很可能是硬盘太慢了。

    ●CPU负载持续很高,内存也够用,但CPU利用率很低,可以使用CPU负载分析工具监控负载时间。

     

    17、学习5个Linux性能命令

    使用几个命令就可以管理Linux系统的性能了,下面列出了5个最常用的Linux性能命令,包括top、vmstat、iostat、free和sar,它们有助于系统管理员快速解决性能问题。

    (1)top

    Top命令不仅显示了当前内核服务的任务,还显示了许多关于主机状态的统计数据,默认情况下,它每隔5秒自动更新一次显示的数据(这个时间间隔是可以配置的),通过top命令,我们可以得知几个结果,如:当前正常运行时间,系统负载,进程数量和内存使用率,此外,这个命令也显示了那些使用最多CPU时间的进程(包括每个进程的各种信息,如运行用户,执行的命令等)。

    (2)vmstat

    Vmstat命令提供当前CPU、IO、进程和内存使用率的快照,它和top命令类似,自动更新数据,如:

    $ vmstat 10

    (3)iostat

    Iostat命令(在Ubuntu,Red Hat/Fedora上包含在sysstat软件包中)提供三个报告:CPU利用率、设备利用率和网络文件系统利用率,不加任何参数运行时,iostat将显示这三个报告,使用-c,-d和-h参数可以分别独立显示这三个报告。

    (4)free

    Free命令显示主内存和交换空间的内存统计数据,指定-t参数可以显示总内存数量,指定-b参数可以按字节为单位进行显示,使用-m则以兆为单位显示,默认情况下是以千字节为单位的。

    Free命令也可以使用-s参数加一个延迟时间(单位:秒)连续运行,如:

    $ free -s 5

    (5)sar

    Sar命令收集,查看和记录性能数据,这个命令比前面几个命令历史更悠久,它可以收集和显示较长周期的数据。

     

    其它

    下面是一些归类为其它的性能技巧:

    18、将日志文件转移到内存中

    当一台机器处于运行中时,最好是将系统日志放在内存中,当系统关闭时再将其复制到硬盘,当你运行一台开启了syslog功能的笔记本电脑或移动设备时,ramlog可以帮助你提高系统电池或移动设备闪存驱动器的寿命,使用ramlog的一个好处是,不用再担心某个守护进程每隔30秒向syslog发送一条消息,放在以前,硬盘必须随时保持运转,这样对硬盘和电池都不好。

     

    19、先打包,后写入

    在内存中划分出固定大小的空间保存日志文件,这意味着笔记本电脑硬盘不用一直保持运转,只有当某个守护进程需要写入日志时才运转,注意ramlog使用的内存空间大小是固定的,否则系统内存会很快被用光,如果笔记本使用固态硬盘,可以分配50-80MB内存给ramlog使用,ramlog可以减少许多写入周期,极大地提高固态硬盘的使用寿命。

     

    20、一般调优技巧

    尽可能使用静态内容替代动态内容,如果你在生成天气预告,或其它每隔1小时就必须更新的数据,最好是写一个程序,每隔1小时生成一个静态的文件,而不是让用户运行一个CGI动态地生成报告。

    为动态应用程序选择最快最合适的API,CGI可能最容易编程,但它会为每个请求产生一个进程,通常,这是一个成本很高,且不必要的过程,FastCGI是更好的选择,和Apache的mod_perl一样,都可以极大地提高应用程序的性能。

    展开全文
  • Aerospike数据库服务器 欢迎来到Aerospike数据库服务器源代码树! Aerospike是一个分布式,可扩展的NoSQL数据库。 它的设计具有三个主要目标: 创建一个满足当今Web规模应用程序需求的高性能,可扩展平台 提供传统...
  • Mysql优化,RAID优化,数据库技术,DELL RAID,SSD,Intel X25-M G2

     

             近期公司采购了新的DB服务器,结合以前的一些经验再研究了一下Mysql的各种优化点,从硬件选择到Raid,从更换InnoDB引擎再到my.cnf。大部分的优化点国内没有什么文章提及(www.mysqlperformanceblog.com 里很多有价值的信息,对于喜欢研究Mysql的朋友再强烈推荐一把)。这里把一些关键点和优化过程写下来,有需要的朋友可以参考一下。(转贴请注明出处)

     

    1、硬件选择:

     

    DELL R710,E5620 @2.40GHz(4 core * 2 24G RAMIntel X25-M G2 34nm SSD * 4 (RAID 10)

     

    数据库对服务器的CPU,内存,IO都有比较高的要求。CPU就不用多说了,主流的4核×2。内存如果有条件尽量大一些,现在也不太贵(有测试表明在某种应用情况下,innodb_buffer_pool_size设置到一定大小时,无论是FusionIO,普通SSD还是SAS硬盘的TPS都差不多了,后面的文章会提到)。

     

    IO方面,最开始我是准备用传统的4SAS 15K 146GRAID10的,常见的一种选择,比较保险,性能也还不错。后来看了不少SSD相关的文章(感谢cyberty的帮助),性能诱惑确实太大了。于是开始选择SSDFusionIO性能非常强悍,不过价格也强悍,160GB的大概4800美刀。Intel 有企业版的X25-E,采用SLC结构,还是偏贵了一些,性价比不高,另外容量较小。最后选择了Intel X25-M 80G4块做RAID10 能使用160GX25-MMTBF(Mean Time Between Failure,即平均无故障时间)达到120万小时,不过MLC颗粒的擦写理论寿命1万次,为了保险起见使用RAID10,另外会部署一台使用SAS硬盘的slave DB同步数据做备份,就算用SSD这台出问题也可以很快恢复服务。

     

    Intel X25-M相关文章:

     

    http://bbs.ttpod.com/viewthread.php?tid=44144

     

    http://diybbs.zol.com.cn/1/16_107911.html

     

    http://www.beareyes.com.cn/2/lib/200908/31/20090831254_0.htm

     

     

    2SSD需要的特殊处理:

     

    如果是单块SSD,由于SSD的特殊性,即在写数据之前需要把用到的区域擦除然后再进行写操作。如果文件系统写操作能对齐SSDBLOCK SIZE,性能会更好,可以使用fdisk对扇区做一些处理。

     

    参考文章:http://www.nuclex.org/blog/personal/80-aligning-an-ssd-on-linux

     

    由于我这里做了RAID 10,所以情况有一点不一样,是否同样需要对BLOCK SIZE进行操作还没有完全搞清楚,目前没有修改。有研究的哥们儿还请不吝赐教。

     

    在分区时留下了一些连续空间 不使用(10%到20%),Intel控制器会自动将这些空间用作空余空间替换使用,以保持性能延长寿命。综合考虑了一下,我剩余了15G左右。

     

    参考文章:http://memory.zol.com.cn/171/1718110.html

     

    如果做了RAID,可以考虑使用128KBstrip size(由于没找到远程改stripe size的方法,没有具体测试,有机会还需要专门测试一下)

     

    参考文章:http://www.tomshardware.com/forum/251218-32-intel-gen2-raid-stripe-size

     

     

    3DELL服务器查看RAID信息,硬件RAID优化:

     

    需要在Linux下查看RAID的状态,DELLRAID查看工具不支持Debian

     

    查了一些资料,说可以安装DELLopen manage

     

    http://apps.hi.baidu.com/share/detail/14502805

     

    debian下的安装:http://www.tbaumi.de/blog/?p=210

     

    不过这些感觉还是相对麻烦。

     

    后来找到一个简单的方法,首先用 lspci 命令查看一下,如果有类似

     

    03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04)

     

    这样的就可以用。

     

    下载MegaCli

    http://www.lsi.com/DistributionSystem/AssetDocument/8.00.23_Linux_CLI.zip

     

    解压之后会得到一个rpm包,MegaCli-8.00.23-1.i386.rpm

     

    使用alien命令转换成tgz

     

    alien --to-tgz MegaCli-8.00.23-1.i386.rpm

     

    解压tgz,就直接可以使用MegaCli64了(有可能需要chmod +x MegaCli64)。

     

    有可能需要: apt-get install libsysfs-dev

     

    ./opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL

     

    One thing I spent a while figuring out was how to get the rebuild progress, so here's how:

     

    # ./opt/MegaRAID/MegaCli/MegaCli64 -PDRbld -ShowProg -PhysDrv /[32:1/] -aALL

     

     

    参考文章:http://hwraid.le-vert.net/wiki/LSIMegaRAIDSAS

     

    http://pookey.co.uk/wordpress/archives/46-dell-perc-6i-and-raid-monitoring

     

    There's also a really useful cheat sheet for common tasks

     

     

    以下是这台DB服务器用MegaCli64打出来RAID信息:

     

    db2:~# /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aAll          

                                       

    Adapter 0 -- Virtual Drive Information:

    Virtual Drive: 0 (Target Id: 0)

    Name                :

    RAID Level          : Primary-0, Secondary-0, RAID Level Qualifier-0

    Size                : 136.125 GB

    State               : Optimal

    Stripe Size         : 64 KB

    Number Of Drives    : 1

    Span Depth          : 1

    Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU

    Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU

    Access Policy       : Read/Write

    Disk Cache Policy   : Disk's Default

    Encryption Type     : None

     

    Virtual Drive: 1 (Target Id: 1)

    Name                :

    RAID Level          : Primary-1, Secondary-3, RAID Level Qualifier-0

    Size                : 148.0 GB

    State               : Optimal

    Stripe Size         : 64 KB

    Number Of Drives per span:2

    Span Depth          : 2

    Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU

    Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU

    Access Policy       : Read/Write

    Disk Cache Policy   : Disk's Default

    Encryption Type     : None

     

     

    下面开始RAID的优化,对具体的设置项不清楚的朋友可以单独Google一下。

     

    TPMC数据是通过TPCC工具测试出来的。TPCC是perconatools的一部分,大牛Vadim Tkachenko 所出,他在很多文章中使用该工具来进行对比测试。在接下来第二篇优化文章中会具体提到这个工具。

     

    工具地址:https://launchpad.net/perconatools

     

    设置读取缓存:

     

    /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -Cached -LAll -aAll 

     

    恢复:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -Direct -LAll -aAll 

     

    设置前Direct(XFScfq

    21219.334 TpmC

    设置后Cached

    23286.666 TpmC(9.7% up

    设置前Direct(XFSdeadline

    22424.334 TpmC

    设置后Cached

    23761.000 TpmC 5.9% up

     

    都有不少提高,cfq下有9.7%的提升,deadline也有5.9%

     

    设置硬盘缓存(Disk Cache):

     

    打开:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp EnDskCache -LAll -aAll  

    关闭:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp DisDskCache -LAll -aAll

     

    默认是Disk's Default,在这里估计已经是打开的了,测试一下。

     

    设置前(XFSdeadline

    23761.000 TpmC

    enable

    23997.334 TpmC

    disable

    22853.000 TpmC

     

     

    设置读取策略(ReadAhead):

     

    打开:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp ADRA -LALL -aALL

     

    设置前ReadAheadNone(XFSdeadline

    23997.000 TpmC

    ReadAdaptive

    24753.334 TpmC

     

     

    设置写缓存(write cache),一定要注意,写缓存可能导致数据丢失,有电池包(BBU)的情况下可以开启:

     

    打开:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WB -LALL -aALL

    关闭:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp WT -LALL -aALL

     

    如果电池包有问题关闭WB:/opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp NoCachedBadBBU -LALL -aALL

    查看电池状态:

    /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -a0 | grep -e '^isSOHGood' -e '^Charger Status' -e '^Remaining Capacity'

     

    WriteBack

    24753.334 TpmC

    WriteThrough

    20377.334 TpmC

     

    WriteThrough会降低不少的性能。

     

    注意:根据http://www.mysqlperformanceblog.com/2009/03/02/ssd-xfs-lvm-fsync-write-cache-barrier-and-lost-transactions/ 的测试,打开write cache,有可能在极端情况下(突然断电)丢失少量数据,对于数据很敏感的DB,要小心使用。

     

     

    看一下最后优化过后的RAID信息:

     

    db2:~# /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aAll     

                                        

    Adapter 0 -- Virtual Drive Information:

    Virtual Drive: 0 (Target Id: 0)

    Name                :

    RAID Level          : Primary-0, Secondary-0, RAID Level Qualifier-0

    Size                : 136.125 GB

    State               : Optimal

    Stripe Size         : 64 KB

    Number Of Drives    : 1

    Span Depth          : 1

    Default Cache Policy: WriteBack, ReadAdaptive, Cached, No Write Cache if Bad BBU

    Current Cache Policy: WriteBack, ReadAdaptive, Cached, No Write Cache if Bad BBU

    Access Policy       : Read/Write

    Disk Cache Policy   : Enabled

    Encryption Type     : None

     

     

    Virtual Drive: 1 (Target Id: 1)

    Name                :

    RAID Level          : Primary-1, Secondary-3, RAID Level Qualifier-0

    Size                : 148.0 GB

    State               : Optimal

    Stripe Size         : 64 KB

    Number Of Drives per span:2

    Span Depth          : 2

    Default Cache Policy: WriteBack, ReadAdaptive, Cached, No Write Cache if Bad BBU

    Current Cache Policy: WriteBack, ReadAdaptive, Cached, No Write Cache if Bad BBU

    Access Policy       : Read/Write

    Disk Cache Policy   : Enabled

    Encryption Type     : None

     

    RAID配置如果选择不合适,性能差别很大,比如WriteBack还是WriteThrough。需要根据自己的使用情况做选择并测试。

     

    这里相比默认的配置TpmC(xfsdeadline)从22424提升到24753,提高了10.38%

     

     

    系列文章:

    Mysql数据库服务器性能配置优化一 -- 硬件配置及优化,RAID优化

     

    Mysql数据库服务器性能配置优化二 -- 文件系统及IO调度算法的选择

     

    Mysql数据库服务器性能配置优化三 -- Mysql编译配置优化,XtraDB使用,my.cnf优化

     

    展开全文
  • 同时在线访问量继续增大对于1G内存的服务器明显感觉到吃力。本文介绍了MySQL使用很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能。
  • Linux NFS服务器性能优化

    千次阅读 2012-11-15 16:35:02
    NFS是网络文件系统(Network File System)的简称,是分布式计算系统的一个组成部分,可实现在异种网络上共享和装配远程文件系统。NFS由Sun公司开发,目前...NFS文件服务器Linux最常见网络的服务之一。尽管它的规则简
  • linux 数据库操作命令

    千次阅读 2015-11-16 15:16:46
    linux 数据库操作命令
  • Linux下MySQL服务器优化技巧linux服务器应用 电脑资料 普通的MySQL用户利用表创建和索引操作以及利用查询的编写能够进行的优化 磁盘问题 正如前面所述磁盘寻道是一个性能的大瓶颈当数据开始增长以致缓存变得不可能...
  • 前言 PC Server发展到今天,在性能方面有着...而在稳定性方面,搭配PCServer和Linux操作系统,同样能够满重要业务系统所需要的稳定性和可靠性。当然在成本方面,引用一位在行业软件厂商的网友的话来说,“如果不用PC
  • Mysql,数据库,性能优化,linux文件系统,IO调度算法,XFS,JFS,CFQ,deadline
  • DB2数据库性能优化介绍

    千次阅读 2013-08-27 00:19:15
    DB2数据库性能优化介绍作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs前段时间,我从CSDN得到了这本书《DB2数据库性能调整和优化(第2版)》,这是一本介绍DB2数据库性能调优的书籍,此书覆盖了DB2...
  • 同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更...
  • Linux服务器性能评估与优化(四)--网络

    千次阅读 多人点赞 2019-10-18 10:42:46
    之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文: 《Linux服务器性能评估与优化(一)--CPU》 《Linux服务器性能评估与优化(二)--内存》 《Linux服务器性能评估与优化(三)--磁盘i...
  • MySQL数据库导出 方法1:mysqldump命令 执行命令: /usr/local/mysql/bin/mysqldump -u 用户名 -p 数据库名 》 文件名 如果数据库用户名有密码密码,执行后会提示输入密码。如果数据库用户名没有密码,就将命令中的...
  • 数据库服务器的性能调优-续

    千次阅读 2016-10-28 10:15:18
    一、进程管理 企业级数据库服务器可能拥有数千个并发访问数据库的用户。某些用户可能执行只需较少处理能力的简单事务,而其他用户则可能执行涉及更多系统资源的复杂事务。 数据库性能常常基于诸如每小时的事务数或 ...
  • linux服务器中安装mysql数据库及配置

    千次阅读 2019-06-15 16:34:44
    目录 (1)软件下载 (2)上传文件 (3)创建mysql用户及组 (4)创建需要的目录 ...(10)初始化数据库 (11)开放默认防火墙端口 (12)登陆测试: (13)修改密码 (1)软件下载 下载地址:https://download...
  • linux服务器历险之优化你的linux

    千次阅读 2007-08-25 01:42:00
    1,关闭不需要的服务 2,关闭不用的tty 1,关闭不需要的服务 这个应该很容易理解的,凡是我不需要的服务,一概关闭, ... 在linux机器上通常有四项服务是必须保留的 iptables linux下强大的防火墙,只要机器需要
  • 数据库服务器的性能调优

    千次阅读 2016-10-27 14:23:50
    一、I/O调优 在进行 I/O调优时必须做出许多决策。... 对于 DSS中长期运行的查询操作而言,在实现了复杂的查询优化器以及复杂的内存(分类/散列区域)参数控制的数据库中, 更大的块尺寸会提高数据库扫描速度
  • Linux服务器性能评估与优化(一)--CPU

    万次阅读 多人点赞 2015-01-18 11:22:15
    之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文: 《Linux服务器性能评估与优化(一)--CPU》 《Linux服务器性能评估与优化(二)--内存》 《Linux服务器性能评估与优化(三)--磁盘i...
  • 并且为提高数据库存取数据的速度,一般的服务器数据库应用软件创建数据库表空间大都是在裸设备上的,裸设备是没有经过文件系统格式化的硬盘。无法通过备份软件备份裸设备上的数据,这就要求恢复系统时不能覆盖应用...
  • mysql数据库查询优化

    千次阅读 2018-07-31 15:18:25
    服务器性能对数据库的读写能力还是有一定的影响的,尤其体现在磁盘I/O上。mysql数据库频繁的CURD操作是十分吃磁盘I/O的,一般可以认为磁盘I/O是硬件方面制约mysql数据库性能的最大因素。 解决方法:目前一般使用...
  • MySQL数据库优化基本概念

    千次阅读 多人点赞 2020-01-15 10:50:04
    使系统快速运行的最重要因素是其基本设计。您还必须知道系统正在执行哪种...这段时间随着新磁盘的使用而缓慢改善,并且很难为单个表进行优化优化寻道时间的方法是将数据分发到多个磁盘上。 磁盘读写。当磁盘...
  • CentOS3 Linux 服务器环境配置优化详解

    万次阅读 2007-09-18 15:22:00
    原贴:CentOS3 Linux 服务器环境配置优化详解Wikipedia,自由的百科全书 目录 showTocToggle("显示","隐藏") [显示隐藏] 1 内容
  • Linux大内存页Oracle数据库优化

    千次阅读 2015-07-16 10:27:32
    Server都关闭之后,数据库服务器的CPU利用率在数分钟之内都一直是100%,然后逐渐下降,大约需要经过20分钟才会下降到正常的空闲状态,因为这个时候所有的应用都已经关闭,只有非常低的CPU利用率才是正常的状态。...
  • 同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,258
精华内容 48,103
关键字:

linux数据库服务器优化

linux 订阅