一種提升數(shù)據(jù)庫服務器性能的方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及服務器性能提升技術領域,特別是涉及一種提升數(shù)據(jù)庫服務器性能的方法及系統(tǒng)。
【背景技術】
[0002]目前,互聯(lián)網(wǎng)技術的快速發(fā)展給人們的日常生活帶來了越來越多的豐富多彩的網(wǎng)絡資源,基于此,公司對于服務器的需求特別是數(shù)據(jù)庫服務器的需求呈現(xiàn)特別快的增長。同時,隨著今后高度信息化的社會發(fā)展,數(shù)據(jù)庫在各個領域的使用越來越廣泛,面向政府,企業(yè),還有國家的銀行業(yè)和交通業(yè)的應用系統(tǒng)的信息量和用戶數(shù)都在迅猛增長,數(shù)據(jù)庫的應用市場就會出現(xiàn)很激烈的競爭,這樣應用系統(tǒng)也隨之對數(shù)據(jù)庫就提出了高性能的要求。
[0003]然而,在大規(guī)模級的數(shù)據(jù)庫應用系統(tǒng)的開發(fā)過程中,很多程序員僅關注系統(tǒng)功能的實現(xiàn),在系統(tǒng)訪問性能方面的考慮較少,再或者是僅僅從數(shù)據(jù)庫本身角度出發(fā)來提高數(shù)據(jù)庫的性能,要從大數(shù)據(jù)量的數(shù)據(jù)表種快速查詢出相關數(shù)據(jù)已變得非常困難。
[0004]基于此,亟需一種能夠快速簡單且有效地提升數(shù)據(jù)庫服務器性能的方法。
【發(fā)明內容】
[0005]有鑒于此,本發(fā)明提供了一種提升數(shù)據(jù)庫服務器性能的方法及系統(tǒng),以實現(xiàn)能夠快速簡單且有效地提升數(shù)據(jù)庫服務器性能的目的。
[0006]為解決上述技術問題,本發(fā)明提供一種提升數(shù)據(jù)庫服務器性能的方法,包括:
[0007]在數(shù)據(jù)庫服務器啟動時,獲取預設的運行腳本;
[0008]其中,所述運行腳本包括共享內存大小參數(shù),數(shù)據(jù)交換屬性、CPU運行速度以及numa機制設置選項;所述共享內存大小參數(shù)的內容為最大共享內存,所述數(shù)據(jù)交換屬性的內容為不使用內存進行交換,所述CPU運行速度的內容為最大運行速度以及所述numa機制設置選項為關閉numa機制;
[0009]依據(jù)所述運行腳本,將所述數(shù)據(jù)庫服務器的操作系統(tǒng)中的共享內存大小參數(shù)設置為最大共享內存,并將所述操作系統(tǒng)中的數(shù)據(jù)交換屬性設置為不使用內存進行交換;
[0010]將所述操作系統(tǒng)中的CPU運行速度設置為最大運行速度,并關閉numa機制。
[0011]上述方法中,優(yōu)選的,所述運行腳本還包括10調度器的調度策略,所述10調度器的調度策略的內容為deadline策略,該方法還包括:
[0012]將所述操作系統(tǒng)中的10調度器的調度策略設置為deadline策略。
[0013]上述方法中,優(yōu)選的,所述運行腳本還包括信號量數(shù)量,所述信號量數(shù)量的內容為最大信號量;該方法還包括:
[0014]將所述操作系統(tǒng)中的信號量數(shù)量設置為最大信號量,使所述信號量的數(shù)量適應進程的運行。
[0015]本發(fā)明還提供了一種提升數(shù)據(jù)庫服務器性能的系統(tǒng),包括:
[0016]運行腳本獲取單元,用于在數(shù)據(jù)庫服務器啟動時,獲取預設的運行腳本;
[0017]其中,所述運行腳本包括共享內存大小參數(shù),數(shù)據(jù)交換屬性、CPU運行速度以及numa機制設置選項;所述共享內存大小參數(shù)的內容為最大共享內存,所述數(shù)據(jù)交換屬性的內容為不使用內存進行交換,所述CPU運行速度的內容為最大運行速度以及所述numa機制設置選項為關閉numa機制;
[0018]第一設置單元,用于依據(jù)所述運行腳本,將所述數(shù)據(jù)庫服務器的操作系統(tǒng)中的共享內存大小參數(shù)設置為最大共享內存,并將所述操作系統(tǒng)中的數(shù)據(jù)交換屬性設置為不使用內存進行交換;
[0019]第二設置單元,用于將所述操作系統(tǒng)中的CPU運行速度設置為最大運行速度,并關閉numa機制。
[0020]上述系統(tǒng)中,優(yōu)選的,所述運行腳本還包括10調度器的調度策略,所述10調度器的調度策略的內容為deadline策略,該系統(tǒng)還包括:
[0021]第三設置單元,用于將所述操作系統(tǒng)中的10調度器的調度策略設置為deadline策略。
[0022]上述系統(tǒng)中,優(yōu)選的,所述運行腳本還包括信號量數(shù)量,所述信號量數(shù)量的內容為最大信號量;該系統(tǒng)還包括:
[0023]第四設置單元,用于將所述操作系統(tǒng)中的信號量數(shù)量設置為最大信號量,使所述信號量的數(shù)量適應進程的運行。
[0024]以上本發(fā)明提供的一種提升數(shù)據(jù)庫服務器性能的方法及系統(tǒng)中,由于操作系統(tǒng)默認參數(shù)的配置只是較平均的配置,不適合固定的某個具體應用的配置,因此主要是針對數(shù)據(jù)庫服務器的操作系統(tǒng)的運行參數(shù)進行改變,將這種參數(shù)改成數(shù)據(jù)庫需要的且最大的配置,讓數(shù)據(jù)庫執(zhí)行的時候不會因為操作系統(tǒng)本身的參數(shù)限制因素,從而給查詢或者插入性能帶來影響,以提升服務器性能?;诒景l(fā)明所提供的技術方案,用戶只需要寫一個運行腳本,把要改的參數(shù)寫進腳本,每次啟動機器時自動運行該運行腳本即可,實現(xiàn)了快速簡單且有效地提升數(shù)據(jù)庫服務器性能的目的。
【附圖說明】
[0025]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0026]圖1為本發(fā)明實施例提供的一種提升數(shù)據(jù)庫服務器性能的方法的流程圖;
[0027]圖2為本發(fā)明實施例提供的一種參數(shù)修改整體結構示意圖;
[0028]圖3為本發(fā)明實施例提供的一種帶有交換空間的內存分配圖;
[0029]圖4為本發(fā)明實施例提供的一種提升數(shù)據(jù)庫服務器性能的系統(tǒng)的結構框圖示意圖。
【具體實施方式】
[0030]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0031]本發(fā)明的核心是提供一種提升數(shù)據(jù)庫服務器性能的方法及系統(tǒng),以實現(xiàn)能夠快速簡單且有效地提升數(shù)據(jù)庫服務器性能的目的。
[0032]為了使本技術領域的人員更好地理解本發(fā)明方案,下面結合附圖和【具體實施方式】對本發(fā)明作進一步的詳細說明。
[0033]參考圖1,圖1示出了本發(fā)明實施例提供的一種提升數(shù)據(jù)庫服務器性能的方法的流程圖,該方法具體可以包括如下步驟:
[0034]步驟S100、在數(shù)據(jù)庫服務器啟動時,獲取預設的運行腳本;
[0035]其中,運行腳本包括共享內存大小參數(shù),數(shù)據(jù)交換屬性、CPU運行速度以及numa機制設置選項;共享內存大小參數(shù)的內容為最大共享內存,數(shù)據(jù)交換屬性的內容為不使用內存進行交換,CPU運行速度的內容為最大運行速度以及numa機制設置選項為關閉numa機制。
[0036]本發(fā)明主要針對的是數(shù)據(jù)庫服務器,從操作系統(tǒng)的角度來優(yōu)化。參考圖2,示出了一種參數(shù)修改整體結構示意圖。一般情況下,服務器上安裝的操作系統(tǒng)是通用的配置,不會針對特殊的應用。我們利用這一點來達到優(yōu)化數(shù)據(jù)庫的目的。
[0037]步驟S101、依據(jù)運行腳本,將數(shù)據(jù)庫服務器的操作系統(tǒng)中的共享內存大小參數(shù)設置為最大共享內存,并將操作系統(tǒng)中的數(shù)據(jù)交換屬性設置為不使用內存進行交換。
[0038]上述步驟S101是從操作系統(tǒng)中的內存角度對數(shù)據(jù)庫服務器性能進行優(yōu)化。在實際應用中,操作系統(tǒng)中的參數(shù)kernel, shmmax, kernel, shmall,kernel, shmmni指定了最大共享內存段,我們把這個值調節(jié)到盡量大的內存,這里我們使用全部內存的90%。再配合上參數(shù)vm.swappiness,把這個值設為0,代表盡量不使用內存交換,默認的配置是60,代表著應用程序所使用的內存的60%都是放在磁盤上的。這兩個參數(shù)的設定可以讓數(shù)據(jù)庫的執(zhí)行中所使用的內存盡量的多,而且所用到的內存全部在物理內存中。分配的內存圖如圖3所示,圖3示出了一種帶有交換空間的內存分配圖。
[0039]步驟S102、將操作系統(tǒng)中的CPU運行速度設置為最大運行速度,并關閉numa機制。
[0040]上述步驟S102是從操作系統(tǒng)中的CPU運行速度和訪問內存的速度對數(shù)據(jù)庫服務器性能進行優(yōu)化。在實際應用中,一般的操作系統(tǒng)中在工作不是繁忙的時候,CPU會處在一個節(jié)能模式中,即運行在一個較小的頻率內,這時為了讓我們的應用程序盡可能的使用CPU資源,所以我們要把CPU的模式改變成全速運行狀態(tài)。具體實施時可以采用以下命令實現(xiàn):cpupower frequency-set-g performance ο
[0041]下面考慮的問題是即使CPU傳遞運行速度很快,但是訪問內存的速度很慢,也是不行的。所以我們要改進一下CPU訪問內存的速度。cent0S7系統(tǒng)中默認開啟numa機制,SP把CPU和內存劃分為各自不同的塊,這樣同一個塊內的CPU訪問自己塊的內存是很快的,但是訪問別的塊內存就會很慢。我們考慮到數(shù)據(jù)庫的應用是要用到所有的內存和所有的CPU,并不一定要把內存分塊來訪問,所以把這個numa機制關閉掉。以下有三種方法關閉numa機制的方法:1.硬件層,在B1S中設置關閉;2.0S內核,啟動時設置numa = off ;3.可以用numactl命令將內存分配策略修改為interleave (交叉)。
[0042]實際上,除了上述步驟S101和步驟S102分別從內存、CPU運行速度和訪問內存的速度的角度能夠對數(shù)據(jù)庫服務器性能進行優(yōu)化之外,還可以從10調度器的調度策略和信號量數(shù)量設置方面進行優(yōu)化,具體內容如下:
[0043]首先,運行腳本還包括10調度器的調度策略,10調度器的調度策略的內容為deadline策略,在獲取該運行腳本后,將操作系統(tǒng)中的10調度器的調度策略設置為deadline 策略。
[0044]在實際應用中,Linux有四種 10 調度算法:CFQ,Deadline,Anticipatory 和 Ν00Ρ,CFQ是默認的10調度算法。完全隨機的訪問環(huán)境下,CFQ與Dead