基于python的自動化運(yùn)維系統(tǒng)設(shè)計與實(shí)現(xiàn)_第1頁
基于python的自動化運(yùn)維系統(tǒng)設(shè)計與實(shí)現(xiàn)_第2頁
基于python的自動化運(yùn)維系統(tǒng)設(shè)計與實(shí)現(xiàn)_第3頁
基于python的自動化運(yùn)維系統(tǒng)設(shè)計與實(shí)現(xiàn)_第4頁
基于python的自動化運(yùn)維系統(tǒng)設(shè)計與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

摘要自動化運(yùn)維系統(tǒng)能夠?yàn)檫\(yùn)維人員提供對大規(guī)模服務(wù)器群集進(jìn)行可視化運(yùn)維操作的平臺,通過自動化運(yùn)維系統(tǒng)運(yùn)維人員可以更直觀清晰的了解和記錄主機(jī)信息,并進(jìn)行管理。本文設(shè)計并實(shí)現(xiàn)了一個自動化運(yùn)維系統(tǒng)。系統(tǒng)設(shè)計開發(fā)使用VIM開發(fā)工具,Python開發(fā)語言,MySQL數(shù)據(jù)庫,使用了集中化運(yùn)維管理工具SaltStack,基于web.py的架構(gòu)完成,該系統(tǒng)設(shè)計實(shí)現(xiàn)的功能包括:賬戶管理,主機(jī)管理,已加入SaltStack的主機(jī)信息采集,Master監(jiān)控,本系統(tǒng)同時提供對于遠(yuǎn)程主機(jī)的命令管理。關(guān)鍵詞:Python;SaltStack;自動化運(yùn)維

AbstractTheautomatedoperationandmaintenancesystemcanprovideaplatformfortheoperationandmaintenancepersonneltovisualizetheoperationandmaintenanceoflarge-scaleserverclusters.Throughtheautomaticoperationandmaintenancesystem,theoperationandmaintenancepersonnelcanunderstandandrecordthehostinformationmoreintuitivelyandclearly,andmanageit.Thispaperdesignsandimplementsanautomatedoperationandmaintenancesystem.ThesystemdesignanddevelopmentusesVIMdevelopmenttools,Pythondevelopmentlanguage,MySQLdatabase,andusesthecentralizedoperationandmaintenancemanagementtoolSaltStack,whichiscompletedbasedontheweb.pyarchitecture.Thefunctionsdesignedandimplementedbythesysteminclude:accountmanagement,hostmanagement,andhasjoinedSaltStackThehostinformationcollection,Mastermonitoring,thesystemalsoprovidescommandmanagementfortheremotehost.Keywords:Python;Saltstack;Automatedoperations目錄TOC\o\h\z\u第一章緒論 第一章緒論1.1研究意義與目的隨著互聯(lián)網(wǎng)時代的飛速發(fā)展,特別是在發(fā)展中飛速融入了人們的生活中。在這其中產(chǎn)生的信息也是越來越大,越來越多,云計算與大數(shù)據(jù)也就這么隨著發(fā)展,而在發(fā)展中跟上來的挑戰(zhàn)就是所需要管理的主機(jī)集群也愈發(fā)龐大,而作為在這后面提供支持的運(yùn)維人員所需面臨的就是如此多的主機(jī),而這有許多工作都是繁瑣,重復(fù)的,而所需要處理的如此多且重復(fù),那么就很容易出現(xiàn)錯誤。該自動化運(yùn)維系統(tǒng)基于WEB開發(fā),用戶可以通過在該系統(tǒng)中看到主節(jié)點(diǎn)的資源信息,以及將所有的機(jī)器進(jìn)行一個登記,以及對各個主機(jī)的信息可以進(jìn)行查看,并且在WEB中通過SaltStack管理工具可以通過批量的命令發(fā)送來進(jìn)行對旗下主機(jī)的一些重復(fù)性操作進(jìn)行批量處理。因此該選題還是有必要的,因?yàn)檫@樣就可以通過一個可視化的WEB界面來直觀的讓使用人員了解所有的主機(jī)情況,并且讓一些重復(fù)繁瑣的操作一次就能實(shí)現(xiàn),減少出錯的概率,因此這對于運(yùn)維人員來說是具有實(shí)用性的【1】。 通過使用WEB來開發(fā)該自動化運(yùn)維平臺,該課題主要是有以下的幾點(diǎn)目的:1、在大學(xué)的時候所學(xué)的一些相關(guān)專業(yè)課程的基礎(chǔ)上,將所學(xué)的知識與實(shí)踐結(jié)合使用,來進(jìn)一步鞏固相關(guān)專業(yè)的知識以及實(shí)操的能力,從而達(dá)到對學(xué)習(xí)過的知識了解的更清晰,運(yùn)用更熟練,這是對于已學(xué)習(xí)過的知識進(jìn)行更深的挖掘;2、隨著互聯(lián)網(wǎng)時代的飛速發(fā)展,為此提供支持的主機(jī)數(shù)量也越來越龐大,完成該選題是為了給使用人員提供一個自動化運(yùn)維平臺,能夠減低運(yùn)維人員的一些重復(fù)繁瑣的工作量,以及更好的對主機(jī)集群進(jìn)行更好的管理;3、自動化運(yùn)維領(lǐng)域目前較為熱門,這能夠幫助我們掌握Python的一部分知識,以及對于MySQL,SaltStack運(yùn)維管理工具等進(jìn)行學(xué)習(xí),在之后的職業(yè)選擇中有更多的選擇,在進(jìn)行相關(guān)的運(yùn)維工作能有更好的幫助。通過該選題的設(shè)計與實(shí)現(xiàn),可以有效的增強(qiáng)我們對于新知識的學(xué)習(xí)與使用、對相關(guān)資料的查詢以及使用,以及找出問題分析并解決、綜合實(shí)踐使用相關(guān)知識等能力,這有利于我們的學(xué)習(xí)能力、專業(yè)技能能力以及邏輯能力的進(jìn)一步加強(qiáng)。1.2研究背景和現(xiàn)狀在互聯(lián)網(wǎng)用戶及內(nèi)容的規(guī)模還不如現(xiàn)在的過去,為這些行為提供服務(wù)的主機(jī)數(shù)量并不多,因此運(yùn)維人員通過逐臺的登陸主機(jī)進(jìn)行維護(hù)或者進(jìn)行部署服務(wù)等都是游刃有余。而隨著互聯(lián)網(wǎng)的逐漸發(fā)展,伴隨著的就是信息數(shù)據(jù)量的逐漸增多以及需要上線的項(xiàng)目也變得越來越多,這時候就需要逐漸的擴(kuò)大主機(jī)群的規(guī)模,在面對逐漸擴(kuò)大的主機(jī)集群時,運(yùn)維人員則通過shell腳本以及Python來對這些主機(jī)進(jìn)行維護(hù)等處理。而到了現(xiàn)在,又伴隨這云計算大數(shù)據(jù)等的到來,以及人工智能等行業(yè)的火熱,運(yùn)維人員所需要面臨的挑戰(zhàn)就大了,因此就有了Ansible、Chef、Puppet、Fabric、SaltStack等的自動化運(yùn)維工具來為人們提高效率。 為了完成該自動化運(yùn)維平臺,通過學(xué)習(xí)、研究、分析,本自動化運(yùn)維系統(tǒng)主要功能有用戶可以通過在該系統(tǒng)中看到主節(jié)點(diǎn)的資源信息,將所有的機(jī)器進(jìn)行一個登記,以及對各個主機(jī)的信息可以進(jìn)行查看,并且我們可以使用SaltStack管理工具通過批量的命令發(fā)送來對旗下主機(jī)的一些重復(fù)性操作進(jìn)行批量處理,這有助于提高人們的工作效率,讓一些重復(fù)、繁瑣的工作減少出現(xiàn)錯誤。該自動化運(yùn)維平臺使用Python語言進(jìn)行編碼與實(shí)現(xiàn),后臺則采用web.py的框架,存儲方面則使用MySQL數(shù)據(jù)庫來為數(shù)據(jù)提供存儲以及通過SaltStack運(yùn)維工具來實(shí)現(xiàn)功能,通過這些相關(guān)工具和技術(shù)的結(jié)果使用來完成該系統(tǒng)。1.3系統(tǒng)內(nèi)容綜述與論文結(jié)構(gòu)1.3.1本文主要內(nèi)容本系統(tǒng)是一個基于Python開發(fā)的WEB項(xiàng)目,是一個自動化運(yùn)維的WEB應(yīng)用。前端使用Mako進(jìn)行開發(fā),后臺使用web.py進(jìn)行開發(fā),數(shù)據(jù)庫使用MySQL,并結(jié)合了SaltStack自動化運(yùn)維工具??梢酝ㄟ^本系統(tǒng)來進(jìn)行對主節(jié)點(diǎn)的資源信息展示的,以及遠(yuǎn)程命令、查詢子節(jié)點(diǎn)的信息、批量部署等等功能。1.3.2本文主要結(jié)構(gòu)本論文的主要結(jié)構(gòu)介紹如下:第1章:緒論,主要是論述自動化運(yùn)維平臺研究的意義與目的、課題的背景與現(xiàn)狀以及對本論文的主要內(nèi)容進(jìn)行簡單的概述第2章:系統(tǒng)分析與設(shè)計,主要是對該系統(tǒng)的功能模塊來進(jìn)行需求的分析,然后設(shè)計出一套符合本系統(tǒng)的架構(gòu)模式和結(jié)構(gòu)模式,介紹集中化運(yùn)維工具SaltStack介紹以及開發(fā)本系統(tǒng)時使用到的一些技術(shù)還有系統(tǒng)所需要的環(huán)境以及數(shù)據(jù)庫設(shè)計。第3章:自動化運(yùn)維系統(tǒng)的詳細(xì)設(shè)計與實(shí)現(xiàn),首要是詳細(xì)介紹本系統(tǒng)的各個功能模塊的設(shè)計思路以及核心代碼的實(shí)現(xiàn),主要有功能實(shí)現(xiàn)、關(guān)鍵技術(shù)和關(guān)鍵的業(yè)務(wù)邏輯等第4章:系統(tǒng)測試,主要寫了對于整個系統(tǒng)進(jìn)行測試第5章:總結(jié)與展望,對于本論文進(jìn)行歸納總結(jié)以及提出展望。第二章系統(tǒng)分析與設(shè)計2.1需求分析用戶模塊:用戶登陸、注冊、修改信息、退出。主頁模塊:展示主節(jié)點(diǎn)當(dāng)前各類信息。顯示當(dāng)前時間。主機(jī)登記模塊:登記所需記錄的主機(jī)詳細(xì)信息。修改所需記錄的主機(jī)詳細(xì)信息。刪除所需記錄的主機(jī)詳細(xì)信息。SaltStack模塊:顯示當(dāng)前加入SaltStack的子節(jié)點(diǎn)信息。通過SaltStack命令執(zhí)行功能實(shí)現(xiàn)遠(yuǎn)程命令、批量部署等功能。2.2系統(tǒng)總體設(shè)計2.2.1開發(fā)結(jié)構(gòu)設(shè)計設(shè)計、創(chuàng)建該WEB的模式使用了MVC模式,該模式的是指ModelViewController即模型-視圖-控制器。關(guān)于該模式作用如下:Model即模型,它表示的即是核心的對于數(shù)據(jù)的操作或者對于數(shù)據(jù)庫的操作;Controller即控制器,它負(fù)責(zé)的根據(jù)收到的請求而調(diào)用所需要的Model來完成請求;View即視圖,它則與用戶進(jìn)行交互并根據(jù)所接受到的數(shù)據(jù)來呈現(xiàn)到用戶面前。2.2.2系統(tǒng)架構(gòu)設(shè)計本自動化運(yùn)維系統(tǒng)的架構(gòu)由客戶端和服務(wù)端組成,客戶端面對的是使用該自動化運(yùn)維平臺并進(jìn)行交互的用戶,所有功能的實(shí)現(xiàn)則由客戶端、服務(wù)端、數(shù)據(jù)庫以及SaltStack之間的交互完成。如下圖2-1所示,為該自動化運(yùn)維系統(tǒng)的總體架構(gòu):圖2-1系統(tǒng)架構(gòu)圖2.2.3總體功能架構(gòu)根據(jù)2.1的功能需求分析,如圖2-2所示,此為該自動化運(yùn)維系統(tǒng)的功能模塊:圖2-2系統(tǒng)功能模圖2.3SaltStack綜述2.3.1簡介SaltStack是一個在2011年建立的開源項(xiàng)目,這是一個功能強(qiáng)大,能適應(yīng)與大規(guī)模的進(jìn)行批量管理服務(wù)器的C/S自動化集中管理工具,該工具是基于Python語言實(shí)現(xiàn),實(shí)現(xiàn)它的底層網(wǎng)絡(luò)架構(gòu),進(jìn)行通信的則是輕量級消息隊(duì)列ZeroMQ。通過對于SaltStack的部署以及使用,我們能夠?qū)Υ罅糠?wù)器做到任務(wù)執(zhí)行以及配置管理以及基于這兩大功能延伸的另外的一些功能如采集服務(wù)器數(shù)據(jù)等等。2.3.2SaltStack基本原理SaltStack所使用的模式是C/S模式,即客戶端/服務(wù)端的模式,其中客戶端是指SaltStack中的minion子節(jié)點(diǎn),服務(wù)端指Saltstack中的Master主節(jié)點(diǎn),主節(jié)點(diǎn)Master與子節(jié)點(diǎn)minion之間的通信是利用的輕量級消息隊(duì)列ZeroMQ。當(dāng)主節(jié)點(diǎn)和子節(jié)點(diǎn)的SaltStack對應(yīng)組件下載安裝完后,配置完對應(yīng)配置和hosts啟動服務(wù)后,子節(jié)點(diǎn)minion會連接主節(jié)點(diǎn)Master將自己的pubkey發(fā)送過去,請求它為其簽發(fā)證書,而這時的主節(jié)點(diǎn)Master則通過salt-key命令可以查看并且接受子節(jié)點(diǎn)minion的key,為它簽發(fā)證書,而等到證書簽發(fā)完畢后,就代表這主節(jié)點(diǎn)Master和子節(jié)點(diǎn)minion之間已經(jīng)互相信任了。這時候我們就可以通過主節(jié)點(diǎn)Master端發(fā)送任何指令讓匹配的子節(jié)點(diǎn)minion執(zhí)行,子節(jié)點(diǎn)minion執(zhí)行完命令后則返回結(jié)果。在這之間完成任務(wù)是通過4505以及4506兩個端口實(shí)現(xiàn)的,其中4505端口對于的是輕量級消息隊(duì)列ZeroMQ的PUBsystem,它的功能是用來發(fā)送消息的,而4506端口則是REPsystem,它的功能則是用來接受消息的。SaltStack的主節(jié)點(diǎn)與子節(jié)點(diǎn)之間的的消息是通過輕量級消息隊(duì)列ZeroMQ的發(fā)布-訂閱模式來進(jìn)行傳遞的,它們之間的連接方式有tcp以及icp兩種。SaltStack的命令通過salt.client.LocalClient.cmd_cli發(fā)布到主節(jié)點(diǎn)Master,并以此來獲取一個jobid,而命令執(zhí)行得到的結(jié)果則是根據(jù)此jobid來獲取的。主節(jié)點(diǎn)Master接收到該命令后,則通過ZeroMQ在發(fā)送到子節(jié)點(diǎn)minion上,并通過接受到的消息得到需要執(zhí)行的命令在通過minion._handle_aes處理,其會發(fā)起一個本地線程來執(zhí)行命令。在處理完命令后,調(diào)用minion._return_pub方法,將執(zhí)行結(jié)果返回給主節(jié)點(diǎn)Master。主節(jié)點(diǎn)Master接受到了子節(jié)點(diǎn)minion返回的結(jié)果后,在通過使用Master._handle_aes方法,將結(jié)果寫的文件中。在最后獲取到結(jié)果并最終輸出到終端的則是salt.client.LocalClient.cmd_cli通過輪詢獲取Job執(zhí)行結(jié)果【2】。在SaltStack中的還包含了State、Grain、Pillar、Highstate、Modules等模塊。其中,State模塊是通過在服務(wù)器Master中的/srv/salt路徑下編寫.sls函數(shù)關(guān)于配置管理等的一些指令,在通過命令調(diào)用該函數(shù)實(shí)現(xiàn)對與目標(biāo)服務(wù)器的配置管理等。Grain是在SaltStack中的以keyvalue形式存儲的一種靜態(tài)的數(shù)據(jù)庫,它存儲的是由客戶端minion要返回給服務(wù)端的數(shù)據(jù),這部分?jǐn)?shù)據(jù)是靜態(tài)的,包含一些如操作系統(tǒng)類型、版本或者一些硬件屬性的不經(jīng)常改變的數(shù)據(jù)。Pillar是在SaltStack中的以keyvalue形式存儲的一種動態(tài)的數(shù)據(jù)庫這里面存儲的數(shù)據(jù)是比較私密的,它存儲的是客戶端minion需要向服務(wù)器索要的數(shù)據(jù),這些數(shù)據(jù)是只有指定的某個minion客戶端才能看到的關(guān)于自身的Pillar數(shù)據(jù),而別的是無法看見的。Highstate的功能與State模塊功能類似,但是卻是能通過top.sls來對多個服務(wù)器來進(jìn)行更為仔細(xì)的管理。Modules模塊則是包含的SaltStack的指令,包括命令行cmd模塊指令、cp模塊指令、service模塊指令等等,通過這些指令來完成SaltStack的功能【3】。2.3.3SaltStack的部署架構(gòu)在SsltStack中,它包含的角色有三種,其中最重要的兩個角色分別是處于中心控制系統(tǒng)的Master角色,以及被管理的客戶端minion,還有一個角色是syndic,它的作用類似與代理,即只負(fù)責(zé)分發(fā)任務(wù)下去給客戶端minion執(zhí)行。 而基于這三種角色,SaltStack則有四種部署的架構(gòu)【4】: 第一種:Master服務(wù)器與所有客戶端minion直連,minion通過消息隊(duì)列直接接受來自于Master服務(wù)器分發(fā)下來的命令,并執(zhí)行命令或者完成配置管理,具體結(jié)構(gòu)圖如圖2-3所示:圖2-3單Master直連第二種:Master服務(wù)器通過syndic節(jié)點(diǎn)來將命令發(fā)布給旗下的客戶端minion,在該架構(gòu)中,Master服務(wù)器通過syndic來對客戶端進(jìn)行管理,通過這種結(jié)構(gòu),則可以進(jìn)行更加多級的擴(kuò)展以此來滿足更大規(guī)模的使用,具體結(jié)構(gòu)圖如圖2-4所示:圖2-4使用代理連接第三種:多臺Master服務(wù)器與所有客戶端minion直連,minion通過消息隊(duì)列直接接受來自于Master服務(wù)器分發(fā)下來的命令,并執(zhí)行命令或者完成配置管理,而使用這種結(jié)構(gòu)的時候,客戶端minion需要在hosts以及salt的配置文件中配置多個服務(wù)端的節(jié)點(diǎn)以及多個服務(wù)器Master之間的配置、狀態(tài)、密鑰文件等需要相同,以此來提高系統(tǒng)的高可用,解決單點(diǎn)問題,具體結(jié)構(gòu)圖如圖2-5所示:圖2-5多Master連接第四種:單minion客戶端的無Master服務(wù)器模式,即單機(jī)版,在該種架構(gòu)當(dāng)中,客戶端不受任何的服務(wù)器Master控制使用,只要在本地運(yùn)行,一些相關(guān)的功能就能自己完成,具體結(jié)構(gòu)圖如圖2-6所示:圖2-6單機(jī)版在本次系統(tǒng)中,我們采用的是第一種Master服務(wù)器對所有客戶端minion進(jìn)行管理的架構(gòu),在進(jìn)行這小型的架構(gòu)時即可滿足需求。2.3.4為何選擇SaltStack目前來說可以選擇的自動化運(yùn)維工具有很多,但是目前而言較為熱門的還是Puppet、Chef、Ansible和SaltStack、Fabric這幾個工具。其中Ansible、SaltStack和Fabric這三者都是基于Python來進(jìn)行開發(fā)的,而Puppet、Chef則是基于Ruby來進(jìn)行開發(fā)的。和Saltstack相比,Ansible和其之間功能是非常相似的,不過SaltStack是基于輕量級消息隊(duì)列ZeroMQ來進(jìn)行通信的,而Ansible則不一樣,它的底層主要還是通過SSH來進(jìn)行通信,而ZMQ相比,那Ansible它的通信速度則就慢了許多了,而當(dāng)如果遇到更大規(guī)模的集群時,是不如SaltStack的,除此之外,它在對于支持的環(huán)境這方面而言,也是比SaltStack支持的操作系統(tǒng)的數(shù)量要更少一些,不過它相對與SaltStack,它在進(jìn)行安裝部署的時候,子節(jié)點(diǎn)是不需要在下載安裝agent的,相對與SaltStack而言則是則是更簡單。而Fabric相對與SaltStack而言,它要更適合與小型的環(huán)境中,而且相比較與SaltStack而言,由于它的定位以及本身,會更加的容易出現(xiàn)單點(diǎn)故障,因此如果是在稍微大型些的環(huán)境中使用的話則顯的不妥。Puppet則是相對于這些而言要更成熟,但是它的庫也因此顯的更為笨重,除此之外,由于它是基于Ruby開發(fā)的,而如果要使用它則需要對此語言有更深入的了解才能很好的掌握該工具,相比較而言,它的使用門檻還是有點(diǎn)高的。而Chef與Puppet有點(diǎn)類似,但也是一樣由于是基于Ruby開發(fā)的,想要使用該工具的話還需要通過次語言進(jìn)行更多的開發(fā)以及了解才能對其進(jìn)行使用,這相對與Pupper而言,更不是一個能簡單使用的工具【5】。因此基于多方面的考慮,我們在這里選擇了使用SaltStack這一款工具,相比較而言,它具有較為全面的功能,以及擁有快速的速度,對于各類操作系統(tǒng)環(huán)境的支持也要更加全面,在大型的集群環(huán)境也不會顯得不堪重用,而且使用門檻不高,對于使用人員而言更為友好,而且由于是使用Python開發(fā)的,因此對于該語言是相當(dāng)兼容的,而Python中的數(shù)量龐大的庫對其的使用更是提供了更為有力的支持【6】。2.4開發(fā)技術(shù)綜述2.4.1Python編程語言Python是當(dāng)前較為熱門的,能在時下火熱的領(lǐng)域中頻頻出現(xiàn)的如人工智能等的一種面向?qū)ο蟮慕忉屝透呒売嬎銠C(jī)腳本語言。它在創(chuàng)立之初就是為了要編寫shell腳本而出現(xiàn)的。目前來說,在現(xiàn)在的許多公司對于使用Python的工程師還是很有需求的,而別是在與人工智能以及運(yùn)維方面等。Python這一門語言具有許多的有點(diǎn),比如簡潔、擁有大量的擴(kuò)展庫,而正是憑借這些擴(kuò)展庫讓Python擁有了許多的功能以及對于新手而言更為友好,它的使用門檻并不會特別的高,正是這等等的眾多優(yōu)點(diǎn)也讓它的在現(xiàn)在的眾多的編程語言當(dāng)中能有屬于它自己的地位,當(dāng)然了,Python也并不是毫無缺點(diǎn)的,比如相對與C、Java等語言來說它的速度就相對而言慢了不少了,而這也是它解釋型語言的特性導(dǎo)致的,它在工作的時候是需要將代碼解釋給硬件能理解的語言,所以就會導(dǎo)致在速度方面會比較慢,以及還有另外的一些小的缺點(diǎn),當(dāng)然了,這些缺點(diǎn)對于Python而言并不會蓋過它的優(yōu)點(diǎn)【7】。2.4.2web.py框架web.py框架是一個小巧輕量但是這不影響它功能強(qiáng)大的一個基于Python的WEB開發(fā)框架。它是一個很精簡的框架,只是提供了基礎(chǔ)的骨架以及url路由,對于用戶而言通過使用這個框架對于業(yè)務(wù)的邏輯方面來說是更容易上手使用進(jìn)行開發(fā)的,不過也是因?yàn)樗喌奶匦运鶎?dǎo)致它所擁有的功能并沒有其他框架那樣強(qiáng)悍,如果有所需要的另外一些功能則需要使用者自己在去進(jìn)行開發(fā)。2.4.3Mako模板Mako模板是一個基于Python的一個WEB模板,它是一個借鑒了Jinjia2等多個優(yōu)秀模板而編寫出來的一個簡單易上手、渲染速度快,并且對于Python語言的引用有著優(yōu)秀的支持的一個模板,雖然它的使用難度并不算很高,但是這并不影響它的對于Python中的WEB開發(fā)的優(yōu)秀的支持。2.4.4psutil庫psutil庫你一個可以在Python使用的且且跨平臺的一個第三方庫。它在對于對系統(tǒng)資源監(jiān)控之一方面起到重要的作用,通過使用該庫,我們使用Python來進(jìn)行對系統(tǒng)管理的時候效率會的到非常大的提高,而且使用調(diào)用該庫并實(shí)現(xiàn)功能的時候非常簡單,只需要些許代碼即可實(shí)現(xiàn)所要實(shí)現(xiàn)的對系統(tǒng)資源監(jiān)控的功能,除此之外,該庫所支持的操作系統(tǒng)數(shù)量也是不少,主流的大部分操作系統(tǒng)都能支持進(jìn)行資源監(jiān)控,psutil絕對是一個在運(yùn)維人員手中的一個重要第三方庫。2.4.5Dmidecode工具Dmidecode是一個可以獲取系統(tǒng)硬件信息的一個工具,我們可以通過下載Python使用的版本來對該工具進(jìn)行使用,通過該工具,我們能夠?qū)τ谙到y(tǒng)的的硬件信息進(jìn)行獲取,這是一個對于psutil的補(bǔ)充使用。2.4.6MySQL數(shù)據(jù)庫MySQL是一個在現(xiàn)在也有非常多個人或企業(yè)使用的一個開源的、體量小、輕型的關(guān)系型數(shù)據(jù)庫,別看它開源且體量不大,但是這寫都不影響它的功能,功能強(qiáng)大,對于使用人員來說相對于其他數(shù)據(jù)庫而言更容易上手,對于許多操作系統(tǒng)都是提供使用支持的,而且具有非常不錯的穩(wěn)定性的同時維護(hù)方面也并不困難,這些結(jié)合起來對于個人或者是一些中小企業(yè)來說,滿足他們的數(shù)據(jù)存儲需求也是完全足夠的了,而即便是是在面對大型的數(shù)據(jù)存儲的場景時,它也并不是不能使用的,這足以看出它的功能強(qiáng)大【8】。2.5系統(tǒng)所需環(huán)境及數(shù)據(jù)庫設(shè)計2.5.1系統(tǒng)運(yùn)行時所需環(huán)境桌面虛擬軟件:VMwareWorkstationPRO操作系統(tǒng):Centos6.5數(shù)據(jù)庫:MySQL5.1.73SaltStack:SaltStack20.2環(huán)境配置1、Python的相關(guān)配置: 在使用操作系統(tǒng)自帶的Python的時候,還需要下載pip這一Python的包管理工具,以此來下載使用一些所需要使用的Python的庫,在下載后,可一通過pip-V命令來查看pip的版本,并以此來查看是否安裝正確。而在正確下載該管理工具后,在下載其他包后,可以是哦那個pip-show命令來查看所下載的包是否正確。 2、MySQL的相關(guān)配置: MySQL是我在該系統(tǒng)中采用的用來存放一些數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫,在本次中所使用的是5.1.73版本的數(shù)據(jù)庫。在下載安裝后,我們在為其創(chuàng)建了root用戶以及密碼為123456789,除此之外,為了能夠不僅僅是在本機(jī)連接上數(shù)據(jù)庫,通過MySQL的命令,為用戶root賦予了遠(yuǎn)程登陸的權(quán)限,除此之外,為了防止數(shù)據(jù)庫出現(xiàn)問題,將這里面的空賬號刪除。 3、SaltStack的相關(guān)配置: SaltStack是我在該系統(tǒng)中所使用的一款自動化集中管理工具。在下載該工具前,我們需要修改yum源,因?yàn)槿绻褂媚J(rèn)的倉庫的話,這里面是不含有該工具的,因此需要安裝新的yum源,并更改相應(yīng)的配置。在完成前面的步驟后,由于在本系統(tǒng)中所采用的架構(gòu)是服務(wù)端Master直接管理客戶端minion,所以需要分別對應(yīng)下載相應(yīng)的salt-master和salt-minion版本。下載完相對于的版本,則分別在所有服務(wù)器中的hosts文件中增加相對應(yīng)的ip到主機(jī)名的映射,然后在minion服務(wù)器中修改SaltStack的相應(yīng)配置后,將所有服務(wù)器啟動,在啟動后,客戶端minion會根據(jù)之前的hosts文件中的映射以及相應(yīng)salt文件中的配置尋找?guī)aster并發(fā)送證書請求其為自己進(jìn)行簽名,已達(dá)到互信,Master可以通過salt-key-a的命令來接受某客戶端的請求,不過如果需要接受很多minion的時候,則可以修改相應(yīng)的auto_accept的配置,讓Master自動為minion簽發(fā)證書。如此一來,SaltStack也就完成了相應(yīng)的配置可以進(jìn)行使用了。2.5.3數(shù)據(jù)庫表分析為了能夠滿足該自動化運(yùn)維系統(tǒng)的功能需求,在此于數(shù)據(jù)庫中建立了與用戶信息模塊、主機(jī)信息模塊、配置信息模塊、登陸信息模塊等相關(guān)的表來實(shí)現(xiàn)。 用戶信息模塊:該表存放了用戶的id、賬號、密碼、昵稱、手機(jī)號碼、郵箱賬號、用戶等級、用戶狀態(tài)、最后登陸記錄、注冊時間、備注等這類信息。主機(jī)信息模塊:該表存放了關(guān)于該主機(jī)的id、主機(jī)名稱、如果存在域名記錄域名信息、內(nèi)網(wǎng)ip、公網(wǎng)ip、管理ip、服務(wù)器型號對應(yīng)id、CPU信息對應(yīng)id、硬盤大小對應(yīng)id、內(nèi)存大小對應(yīng)id、操作系統(tǒng)版本、自定義編碼信息、登記時間信息、上架時間信息、更改的時間、登記者id、更改者id、任務(wù)信息、類型、機(jī)房歸屬信息對應(yīng)id、所屬機(jī)柜信息對應(yīng)id、標(biāo)簽、編號、當(dāng)前狀態(tài)、備注等信息。配置信息模塊:該表存放了關(guān)于該配置的id、類型、該類型的值、組標(biāo)記、當(dāng)前狀態(tài)、備注等信息。登陸信息模塊:該表存放了關(guān)于登陸順序信息id、用戶id登陸時間、登陸ip、登陸地方、使用瀏覽器類型、登錄令牌、過期時間、會話狀態(tài)等信息。2.5.4概念模型設(shè)計 根據(jù)上述的需求分許,我們可以憑此得到設(shè)計思路,并按照此思路設(shè)計出各實(shí)體關(guān)系,并用E-R圖表現(xiàn)出來。各E-R圖如圖2-7所示:圖2-7實(shí)體關(guān)系圖2.5.5數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計當(dāng)前的表結(jié)構(gòu)設(shè)計如表2-1至2-4所示:表2-1用戶信息users表字段名類型長度允許空值主鍵注釋idint3√用戶的idusernamevarchar20賬號passwordvarchar60密碼nicknamevarchar20是昵稱mobilevarchar15是手機(jī)號碼emailvarchar50是郵箱賬號levelint1用戶等級statusvarchar3用戶狀態(tài)loginfoint5最后登陸記錄regdatetimestamp0注冊時間commentvarchar50是備注表2-2主機(jī)信息hosts表字段名類型長度允許空值主鍵注釋idint3√用戶的idhostnamevarchar30主機(jī)名稱domainvarchar30是如果存在域名記錄域名信息priip1varchar15內(nèi)網(wǎng)ippriip2varchar15是內(nèi)網(wǎng)ippubip1varchar15是公網(wǎng)ippubip2varchar15是公網(wǎng)ipadminipvarchar15是管理ipmodelvarchar30服務(wù)器型號對應(yīng)idcpuvarchar30CPU信息對應(yīng)idhddvarchar20是硬盤大小對應(yīng)idmemvarchar20內(nèi)存大小對應(yīng)idosvarchar30操作系統(tǒng)版本rnumvarchar20自定義編碼信息storagedatedate0登記時間信息startdatedate0上架時間信息mdatetimestamp0更改的時間creatorint3登記者ideditorint3更改者idrolevarchar20任務(wù)信息typevarchar20類型idcvarchar20機(jī)房歸屬信息對應(yīng)ididctagvarchar20所屬機(jī)柜信息對應(yīng)idstagvarchar20標(biāo)簽snumvarchar20編號statusvarchar10當(dāng)前狀態(tài)commentvarchar20是備注表2-3配置信息options表字段名類型長度允許空值主鍵注釋idint3√該配置的idtypevarchar15類型valuevarchar50該類型的值defaultvarchar3組標(biāo)記statusvarchar3當(dāng)前狀態(tài)commentvarchar20是備注表2-4登陸信息login_logs表字段名類型長度允許空值主鍵注釋idint6√登陸順序信息iduidint3用戶iddatatimestamp0登陸時間ipvarchar15登陸iplocationvarchar30是登陸地方agentvarchar150使用瀏覽器類型tokenvarchar64是登錄令牌expirydatetime0是過期時間statusvarchar3會話狀態(tài)第三章自動化運(yùn)維系統(tǒng)的詳細(xì)設(shè)計與實(shí)現(xiàn)3.1用戶模塊的設(shè)計與實(shí)現(xiàn)3.1.1登陸注冊流程如果用戶的登陸進(jìn)網(wǎng)站后則進(jìn)入登陸界面,在輸入相關(guān)用戶信息進(jìn)行登陸后,會去數(shù)據(jù)庫進(jìn)行判斷是否正確并將結(jié)果返回到前面,如果成功則登陸,失敗則無法進(jìn)入。在進(jìn)入網(wǎng)站后可以通過用戶管理的功能增加用戶,并將該數(shù)據(jù)與數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行比較,如果用戶信息不存在則注冊成功,存在則注冊失敗。其中登陸注冊的流程圖如圖3-1至3-2所示。圖3-1登陸流程設(shè)計圖3-2注冊流程設(shè)計3.1.2用戶模塊的介紹與實(shí)現(xiàn)用戶模塊中包括了登陸、注冊、修改信息、刪除用戶、查看信息、退出組成。用戶添加、刪除、修改查看頁面如圖3-3至3-4所示。 圖3-3登陸頁面圖3-4用戶管理頁面 在登陸的時候,點(diǎn)擊登陸,則通過一個監(jiān)控事件將用戶信息拿去數(shù)據(jù)庫進(jìn)行查詢,然后通過該信息獲取該用戶的所有信息并保存開啟一個session會話中在將此次會話狀態(tài)設(shè)置為運(yùn)行中的時候并根據(jù)此進(jìn)行一個cookie的設(shè)置然后在進(jìn)行用戶的登陸,最終通過驗(yàn)證跳轉(zhuǎn)進(jìn)入主頁。而在登陸后,則可以對用戶進(jìn)行注冊,通過新增用戶,對用戶的數(shù)據(jù)進(jìn)行輸入后,則將該數(shù)據(jù)拿去數(shù)據(jù)庫中根據(jù)用戶名來進(jìn)行判斷是否擁有重復(fù)的用戶,經(jīng)過判斷沒有后,則將新用戶的數(shù)據(jù)存入數(shù)據(jù)庫中完成用戶注冊。進(jìn)行用戶注冊后,還可以對用戶信息進(jìn)行修改、查看以及刪除以及對使用狀態(tài)的更改。這一系列操作則是通過修改數(shù)據(jù)庫中的數(shù)據(jù)屬性來進(jìn)行實(shí)現(xiàn)。 在完成了一系列操作后需要退出,則在選擇登出后,通過該用戶的id找到數(shù)據(jù)庫中的數(shù)據(jù)將數(shù)據(jù)庫中關(guān)于該用戶的使用狀態(tài)進(jìn)行更改,并將該session會話關(guān)閉,這時候即完成了退出。該部分的主要代碼邏輯如附錄1中所示。3.2模塊的設(shè)計與實(shí)現(xiàn)3.2.1主頁功能流程在進(jìn)行登陸后,會將信息傳遞到主頁后,在主頁中將這些傳遞過來的信息在頁面中展現(xiàn)出來,其中流程圖如圖3-5所示。圖3-5主頁功能流程設(shè)計3.2.2主頁模塊的介紹與實(shí)現(xiàn)在該模塊中主要是包含了相關(guān)的資源展示展示主頁以及當(dāng)前時間顯示和導(dǎo)航欄。如圖3-6所示。圖3-6主頁在登陸后,通過urls的功能調(diào)用對象使用以此獲取需要在主頁中展示的相關(guān)系統(tǒng)資源信息,并將通過引用的包的功能來實(shí)現(xiàn)這一需求,在將獲取到的相關(guān)系統(tǒng)資源信息以及登陸的用戶信息傳遞到主頁中,主頁在通過Mako來將得到的各類信息進(jìn)行展示。而關(guān)于時間顯示的實(shí)現(xiàn)則是通過導(dǎo)入時間的包來獲取當(dāng)前時間,并在主頁中顯示。該部分的主要代碼邏輯如附錄2中所示。3.3主機(jī)登記模塊的設(shè)計與實(shí)現(xiàn)3.3.1主機(jī)登記功能流程在通過登陸進(jìn)入網(wǎng)站后,可以在選項(xiàng)中選擇主機(jī)管理進(jìn)入管理界面,進(jìn)入主機(jī)管理界面后,可以通過添加主機(jī)信息,進(jìn)入添加界面,在將對某主機(jī)的配置以及描述等信息錄入后就添加完成。添加完成后可以進(jìn)行編輯查看以及刪除操作。其中流程圖如圖3-7所示。圖3-7登記、查看、刪除主機(jī)流程設(shè)計3.3.2主機(jī)登記模塊的設(shè)計與實(shí)現(xiàn)在該模塊中主要是包含了主機(jī)信息的錄入、編輯查看以及刪除操作,如圖3-8所示。圖3-8主機(jī)頁面 錄入操作是在選擇添加主機(jī)后,先通過數(shù)據(jù)庫獲取到配置信息表傳遞到前端提供給用戶選擇,在用戶選擇完畢后,則將最后的信息傳遞到后臺,先通過數(shù)據(jù)庫查詢有無沖突的信息,在檢測不沖突后,則進(jìn)行插入數(shù)據(jù)的操作,開始將主機(jī)信息寫入數(shù)據(jù)庫中,這樣就完成了添加操作。編輯查看主要是通過id在數(shù)據(jù)庫中查找相關(guān)對于的主機(jī)信息,并將對應(yīng)的信息傳遞到前端,然后就將獲取的信息讀取出來并進(jìn)行展示。而刪除則是通過id在庫中查找到對于的信息,并進(jìn)行數(shù)據(jù)的刪除。該部分的主要代碼邏輯如附錄3中所示。3.4SaltStack模塊的設(shè)計與實(shí)現(xiàn)3.4.1SaltStack模塊功能流程在進(jìn)入網(wǎng)站后通過選項(xiàng)進(jìn)入SaltStack功能列表,在選擇實(shí)時狀態(tài)時,可以查看已經(jīng)加入SaltStack集群中的客戶端minion節(jié)點(diǎn)的信息。在功能列表中選擇命令下發(fā)時,可以進(jìn)入遠(yuǎn)程命令的功能列表,在進(jìn)入后,可以通過選擇要發(fā)布的目標(biāo)主機(jī)的匹配信息、匹配模式、執(zhí)行模塊、以及執(zhí)行命令進(jìn)行對SaltStack的操作。其中流程圖如圖3-9至3-10所示。圖3-9SaltStack實(shí)時狀態(tài)流程設(shè)計圖3-10SaltStack命令執(zhí)行流程設(shè)計3.4.2SaltStack模塊的設(shè)計與實(shí)現(xiàn)在該模塊中主要是包含了對SaltStack集群的查看實(shí)時狀態(tài)、以及命令執(zhí)行的功能,如圖3-10至3-11所示。圖3-10命令執(zhí)行功能圖3-11子節(jié)點(diǎn)實(shí)時狀態(tài) 查看實(shí)時狀態(tài)主要是通過salt命令調(diào)出相關(guān)的資源信息以及狀態(tài)信息等,通過分段保存等然后將信息傳遞到前端,并在前端調(diào)用信息進(jìn)行展示。而遠(yuǎn)程命令則是通過寫入目標(biāo)主機(jī)對象、匹配規(guī)則如使用通配符匹配還是正則表達(dá)式還是列表選擇等、選擇的執(zhí)行模塊以及具體的執(zhí)行命令來發(fā)布命令,可以通過此來實(shí)現(xiàn)批量部署、遠(yuǎn)程運(yùn)行系統(tǒng)命令、查詢某些主機(jī)的信息等等SaltStack的強(qiáng)大的功能,而在將命令傳到后端執(zhí)行后,后端通過建立一個client來處理命令,并將命令的結(jié)果返回,在通過根據(jù)不同的返回結(jié)果來進(jìn)行存放這些數(shù)據(jù)后,在將對應(yīng)的執(zhí)行結(jié)果返回前端,并在前端展示執(zhí)行的最終結(jié)果。該部分的主要代碼邏輯如附錄4中所示。第四章系統(tǒng)測試4.1運(yùn)行環(huán)境 當(dāng)前系統(tǒng)運(yùn)行在虛擬機(jī)中,使用的是Centos6.5的版本,而其他的配置如下圖4-1所示:圖4-1配置版本4.2測試過程 執(zhí)行項(xiàng)目后,通過WEB輸入訪問地址并通過8080端口訪問該系統(tǒng),進(jìn)入到登陸頁面,如果不輸入用戶名,則通過彈出提示如圖4-2所示,如果沒有輸出密碼,則如4-3所示,如果用戶名或密碼不正確則如4-4所示,圖4-2至4-4如下所示:圖4-2用戶名空圖4-3密碼空圖4-4用戶名或密碼錯誤 在用戶名和密碼驗(yàn)證無誤后則跳轉(zhuǎn)進(jìn)入主頁,在主頁中展示Master信息和Saltstack接入信息,如圖4-5所示:圖4-5主頁 在進(jìn)入主頁后,選擇主機(jī)進(jìn)入主機(jī)管理頁面,可以看到錄入的主機(jī)信息并進(jìn)行管理進(jìn)行增刪改查,如圖4-6所示:圖4-6主機(jī)管理 選擇添加主機(jī)頁面可以登記主機(jī)信息,如圖4-7所示:圖4-7登記主機(jī)信息 登記完主機(jī)信息后,可以在管理頁面看到此主機(jī)并可繼續(xù)進(jìn)行管理操作,如圖4-8所示:圖4-8添加完成 在添加完主機(jī)后可以進(jìn)行修改或者刪除操作,而點(diǎn)擊編輯后則如圖4-9所示:圖4-10編輯 在操作完主機(jī)管理的功能后,可以選擇用戶,進(jìn)入用戶管理頁面,如圖4-11所示:圖4-11用戶管理 點(diǎn)擊添加用戶,則可以進(jìn)行注冊操作,如圖4-12所示:圖4-12添加用戶 成功添加后可以在用戶管理出看到新的用戶,如圖4-13所示:圖4-13添加成功 切換用戶登陸,使用新用戶test登陸如圖4-14所示:圖4-15登陸成功在用戶信息處可以修改密碼,修改密碼如圖4-16所示圖4-16修改密碼在完成用戶管理后可以選擇SaltStack進(jìn)入SaltStack模塊,選擇進(jìn)入實(shí)時狀態(tài),在此可以看到minion節(jié)點(diǎn)的信息,如圖4-17所示:圖4-17實(shí)時狀態(tài)在選擇命令下方,進(jìn)入命令執(zhí)行模塊,如圖4-18所示,為選擇下發(fā)安裝Apache的命令:4-18命令下發(fā)在完成后,可以點(diǎn)擊右上角的退出來完成退出系統(tǒng)。第五章總結(jié)與展望5.1總結(jié) 經(jīng)過在這么幾個月時間中的努力,通過結(jié)合了本專業(yè)相關(guān)的計算機(jī)基礎(chǔ)理論、通過額外學(xué)習(xí)并進(jìn)行實(shí)際使用的SaltStack集中管理工具以及對于開發(fā)的知識與實(shí)踐之后,完成了本自動化運(yùn)維系統(tǒng)的設(shè)計與實(shí)現(xiàn)以及對于論文的撰寫,在這整個的過程中,通過理論與實(shí)踐的相結(jié)合也是讓我感到受益匪淺。 在開發(fā)本自動化運(yùn)維系統(tǒng)的過程中也是出現(xiàn)了不少的狀況,比如對于一些平時沒有用上的知識的使用出現(xiàn)了問題以及在對于新技術(shù)的使用過程中的不熟悉導(dǎo)致進(jìn)度頗為艱難。而通過不斷的翻閱書籍以及通過網(wǎng)絡(luò)查找資料以及與他人討論才克服這些問題。而在這么一整個過程中的最大的收益就是對于SaltStack這款工具的有了實(shí)際的了解和使用,通過它,我們能更快的完成一些繁瑣復(fù)雜的任務(wù),在實(shí)際中也是非常有幫助的。而在開發(fā)的過程中的對于最后的總結(jié)則是認(rèn)為對于各類功能的設(shè)計以及對于對應(yīng)的數(shù)據(jù)庫的規(guī)劃要清晰以及對于系統(tǒng)的框架的規(guī)劃需要有條理且在之前就定好在由小及大串聯(lián)起來,這會讓我們在實(shí)際的開發(fā)過程中會有更好的體驗(yàn)。5.2未來展望隨著使用者所部署的地方需要管理的服務(wù)器越來越多,單單現(xiàn)在的功能是不足以繼續(xù)滿足需求的,還需要對于系統(tǒng)進(jìn)行更深入的開發(fā)。因此本人認(rèn)為還有幾點(diǎn)需要繼續(xù)更近一步的改進(jìn)。一、結(jié)合其他的管理工具以及等提升效率的工具在進(jìn)行組合使用進(jìn)行開發(fā)以及來提高本系統(tǒng)的功能性;二、對于當(dāng)前系統(tǒng)使用的SaltStack工具,編寫更多更細(xì)致的.sls文件來滿足更細(xì)致的面多多種場景的使用,因?yàn)樵诿鎸χS多需要同樣設(shè)置的同時,也會出現(xiàn)不同的差異化,因此就需要在根據(jù)此進(jìn)行更細(xì)的劃分;三、對于現(xiàn)在的系統(tǒng)進(jìn)行改更細(xì)致優(yōu)化以及提供更多的功能。參考文獻(xiàn)【1】Python自動化運(yùn)維:技術(shù)與最佳實(shí)踐[M].機(jī)械工業(yè)出版社,2014年,劉天斯著【2】SaltStack運(yùn)維實(shí)戰(zhàn)[M].電子工業(yè)出版社2016年,劉英杰著【3】SaltStack技術(shù)入門與實(shí)戰(zhàn)[M].機(jī)械工業(yè)出版社,2016年,劉繼偉;沈燦;趙舜東著【4】自動化運(yùn)維之saltstack[Z]/13760226/2308580【5】saltstack[Z]/Richardzhu/p/5790286.html【6】自動化運(yùn)維工具SaltStack的研究與自動化運(yùn)維平臺建設(shè)[R]趙新;于濱;唐素珍;曹殿雪著【7】python程序設(shè)計[M].清華大學(xué)出版社,2016年【8】MySQL從入門到精通[M].清華大學(xué)出版社,明日科技2017年8月1日附錄附錄1:#登陸getPost=web.input()try:getSQL=db.query('''selectu.id,u.username,u.password,u.nickname,u.status,L.ip,L.location,L.datefromusersasuleftjoinlogin_logsasLonu.loginfo=L.idwhereusername="%s"andpassword="%s"'''%(getPost.username,getPost.password))except:web.header('Content-Type','application/json')returnjson.dumps({'code':-1,'msg':'數(shù)據(jù)庫錯誤'})ifgetSQL:getData=getSQL[0]SID=getData['id']Username=getData['username']Status=getData['status']ShowName=getData['nickname']LastDate=getData['date']LastIP=getData['ip']LastLocation=getData['location']ifnotShowName:ShowName=UsernameifStatus=='yes':genSession(SID,Username,ShowName,LastIP,LastLocation,LastDate,False,Lstat='ok',kpl=getPost.kpl)web.header('Content-Type','application/json')returnjson.dumps({'code':0,'msg':'Success'})else:web.header('Content-Type','application/json')returnjson.dumps({'code':-2,'msg':'用戶已被禁用'})else:web.header('Content-Type','application/json')returnjson.dumps({'code':-3,'msg':'用戶名或密碼錯誤'})#注冊

getPost=web.input()try:getSQL=db.query('''selectid,usernamefromuserswhereusername="%s"'''%(getPost.username))except:return"error"ifgetSQL:return"false"附錄2:f=open('/proc/loadavg')l=f.read().split()f.close()loadavg_1=l[0]loadavg_5=l[1]loadavg_15=l[2]#GetMemoryf=open('/proc/meminfo')m=f.readlines()f.close()mem={}forninm:iflen(n)<2:continuename=n.split(':')[0]var=n.split()[1]mem[name]=int(var)/1024mem['MemUsed']=mem['MemTotal']-mem['MemFree']-mem['Buffers']-mem['Cached']附錄3:try:getSQL=db.query('''selecthostname,priip1fromhostswherehostname="%s"orpriip1="%s"'''%(p.hostname,p.priip1))exceptException,e:print"MySQLError:",Exception,":",ereturn"Error"ifgetSQL:foriingetSQL:ifp.hostname==i.hostname:return"HostnameError"ifp.priip1==i.priip1:return"PriIP1Error" try:db.query('''insertintohosts(hostname,role,priip1,priip2,pubip1,pubip2,model,cpu,hdd,mem,os,rnum,storagedate,adminip,type,startdate,idc,idctag,snum,stag,status,comment,creator,editor)values("%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s")'''%(p.hostname,p.role,p.priip1,p.priip2,p.pubip1,p.pubip2,p.model,p.cpu,p.hdd,p.mem,p.os,p.rnum,p.storagedate,p.adminip,p.type,p.startdate,p.idc,p.idctag,p.snum,p.stag,p.status,ment,getLogin()['SID'],getLogin()['SID']))exceptException,e:print"MySQLError:",Exception,":",ereturn"Error"return"Add.True"附錄4:c=web.input()fun=c.funarg=c.argtgt=c.tgtexpr_form=c.expr_formtimeout=c.timeoutiftimeout.isdigit():timeout=int(timeout)else:timeout=NoneArg=[arg]local=salt.client.LocalClient()FL=Cmd.CMD致謝時光飛逝,一眨眼間我就在美麗的東軟學(xué)院中度過了四年。這四年,這是我人生中非常重要的四年,我很幸運(yùn)能夠接觸到這些不僅傳授我的知識,還能從更高的層次來指導(dǎo)我的人生和追求價值的老師,還有態(tài)度積極樂觀、互相進(jìn)步的同學(xué)們。它們使我在學(xué)校中生活充實(shí),在之后也擁有了繼續(xù)追求前進(jìn)的動力,為我的大學(xué)生活畫下來一個完美的句號。在這篇論文的設(shè)計過程中,從一開始確定論文題目到項(xiàng)目的實(shí)現(xiàn),最后到論文的完成,總共花費(fèi)了三個多月時間。這其中我經(jīng)歷了很多的困難,面臨過不少困惑,但我最終克服了它們。我要感謝我的畢業(yè)論文導(dǎo)師趙元成老師,在學(xué)習(xí)過程中,老師給了我詳細(xì)的指導(dǎo),從選題指導(dǎo),論文框架到詳細(xì)修改,并提出了許多有價值的建議。當(dāng)我在論文中期遇到難題的時候,他指導(dǎo)了我論文寫作的思路和方向。感謝給我論文提供了幫助和意見的朋友和同學(xué)們和查閱資料時指明方向的各位作者,他們的幫助讓我在論文的編寫中有了很大的啟發(fā)。最后,我特別的感謝我的父母,是他們支持我完成學(xué)業(yè),是他們?yōu)槲姨峁┝艘粋€堅強(qiáng)的后盾以及對我的包容與愛。在此,我要向所有在百忙之中審閱論文并參加答辯的專家教授們表示衷心的感謝!

怎樣提高電腦系統(tǒng)運(yùn)行速度WindowsXP的啟動速度比Windows2000要快30%左右,但相對于Windows98仍然要慢了不少,不過,我們可以通過優(yōu)化設(shè)置,來大大提高WindowsXP的啟動速度。加快系統(tǒng)啟動速度主要有以下方法:盡量減少系統(tǒng)在啟動時加載的程序與服務(wù);對磁盤及CPU等硬件進(jìn)行優(yōu)化設(shè)置;修改默認(rèn)設(shè)置,減少啟動等待時間等。這些方法大部分既可減少系統(tǒng)啟動的時間,又可以節(jié)省系統(tǒng)資源,加快電腦運(yùn)行速度。1.加快系統(tǒng)啟動速度WindowsXP的啟動速度比Windows2000要快30%左右,但相對于Windows98仍然要慢了不少,不過,我們可以通過優(yōu)化設(shè)置,來大大提高WindowsXP的啟動速度。加快系統(tǒng)啟動速度主要有以下方法:盡量減少系統(tǒng)在啟動時加載的程序與服務(wù);對磁盤及CPU等硬件進(jìn)行優(yōu)化設(shè)置;修改默認(rèn)設(shè)置,減少啟動等待時間等。這些方法大部分既可減少系統(tǒng)啟動的時間,又可以節(jié)省系統(tǒng)資源,加快電腦運(yùn)行速度。(1)MsconfigWindowsXP的啟動速度在系統(tǒng)安裝初期還比較快,但隨著安裝的軟件不斷增多,系統(tǒng)的啟動速度會越來越慢,這是由于許多軟件把自己加在了啟動程序中,這樣開機(jī)即需運(yùn)行,大大降低了啟動速度,而且也占用了大量的系統(tǒng)資源。對于這樣一些程序,我們可以通過系統(tǒng)配置實(shí)用程序Msconfig將它們從啟動組中排除出去。選擇“開始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對話框中鍵入“Msconfig”,回車后會彈出“系統(tǒng)配置實(shí)用程序”對話框,選擇其中的“啟動”選項(xiàng)卡(如圖1),該選項(xiàng)卡中列出了系統(tǒng)啟動時加載的項(xiàng)目及來源,仔細(xì)查看每個項(xiàng)目是否需要自動加載,否則清除項(xiàng)目前的復(fù)選框,加載的項(xiàng)目越少,啟動的速度就越快。設(shè)置完成后需要重新啟動方能生效。(2)BootvisBootvis是微軟提供的一個啟動優(yōu)化工具,可提高WindowsXP的啟動速度。用BootVis提升WindowsXP的啟動速度必須按照正確的順序進(jìn)行操作,否則將不會起到提速的效果。其正確的操作方法如下:啟動Bootvis,從其主窗口(如圖2)中選擇“工具”菜單下的“選項(xiàng)”命令,在“符號路徑”處鍵入Bootvis的安裝路徑,如“C:\ProgramFiles\Bootvis”,單擊“保存”退出。從“跟蹤”菜單中選擇“下次引導(dǎo)”命令,會彈出“重復(fù)跟蹤”對話框,單擊“確定”按鈕,BootVis將引導(dǎo)WindowsXP重新啟動,默認(rèn)的重新啟動時間是10秒。系統(tǒng)重新啟動后,BootVis自動開始運(yùn)行并記錄啟動進(jìn)程,生成啟動進(jìn)程的相關(guān)BIN文件,并把這個記錄文件自動命名為TRACE_BOOT_1_1。程序記錄完啟動進(jìn)程文件后,會重新啟動BootVis主界面,在“文件”菜單中選擇剛剛生成的啟動進(jìn)程文件“TRACE_BOOT_1_1”。窗口中即會出現(xiàn)“CPU>使用”、“磁盤I/O”、“磁盤使用”、“驅(qū)動程序延遲”等幾項(xiàng)具體圖例供我們分析,不過最好還是讓BootVis程序來自動進(jìn)行分析:從“跟蹤”菜單中選擇“系統(tǒng)優(yōu)化”命令,程序會再次重新啟動計算機(jī),并分析啟動進(jìn)程文件,從而使計算機(jī)啟動得更快。(3)禁用多余的服務(wù)WindowsXP在啟動時會有眾多程序或服務(wù)被調(diào)入到系統(tǒng)的內(nèi)存中,它們往往用來控制Windows系統(tǒng)的硬件設(shè)備、內(nèi)存、文件管理或者其他重要的系統(tǒng)功能。但這些服務(wù)有很多對我們用途不大甚至根本沒有用,它們的存在會占用內(nèi)存和系統(tǒng)資源,所以應(yīng)該將它們禁用,這樣最多可以節(jié)省70MB的內(nèi)存空間,系統(tǒng)速度自然也會有很大的提高。選擇“開始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對話框鍵入“services.msc”后回車,即可打開“服務(wù)”窗口。窗口的服務(wù)列表中列出了系統(tǒng)提供的所有服務(wù)的名稱、狀態(tài)及啟動類型。要修改某個服務(wù),可從列表雙擊它,會彈出它的屬性對話框(如圖3),你可從“常規(guī)”選項(xiàng)卡對服務(wù)進(jìn)行修改,通過單擊“啟動”、“停止”、“暫停”、“恢復(fù)”四個按鈕來修改服務(wù)的狀態(tài),并可從“啟動類型”下拉列表中修改啟動類型,啟動類型有“自動”、“手動”、“已禁用”三種。如果要禁止某個服務(wù)在啟動自動加載,可將其啟動類型改為“已禁用”。WindowsXP提供的所有服務(wù)有36個默認(rèn)是自動啟動的,實(shí)際上,其中只有8個是必須保留的(見下表),其他的則可根據(jù)自己的需要進(jìn)行設(shè)置,每種服務(wù)的作用在軟件中有提示。4)修改注冊表來減少預(yù)讀取,減少進(jìn)度條等待時間WindowsXP在啟動過程中會出現(xiàn)一個進(jìn)度條,我們可以通過修改注冊表,讓進(jìn)度條只跑一圈就進(jìn)入登錄畫面。選擇“開始”菜單中的“運(yùn)行”命令,在“運(yùn)行”對話框鍵入“regedit”命令后回車,即可啟動注冊表編輯器,在注冊表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,選擇其下的EnablePrefetcher鍵,把它的鍵值改為“1”即可。(5)減少開機(jī)磁盤掃描等待時間當(dāng)Windows日志中記錄有非正常關(guān)機(jī)、死機(jī)引起的重新啟動,系統(tǒng)就會自動在啟動的時候運(yùn)行磁盤掃描程序。在默認(rèn)情況下,掃描每個分區(qū)前會等待10秒鐘,如果每個分區(qū)都要等上10秒才能開始進(jìn)行掃描,再加上掃描本身需要的時間,會耗費(fèi)相當(dāng)長的時間才能完成啟動過程。對于這種情況我們可以設(shè)置取消磁盤掃描的等待時間,甚至禁止對某個磁盤分區(qū)進(jìn)行掃描。選擇“開始→運(yùn)行”,在運(yùn)行對話框中鍵入“chkntfs/t:0”,即可將磁盤掃描等待時間設(shè)置為0;如果要在計算機(jī)啟動時忽略掃描某個分區(qū),比如C盤,可以輸入“chkntfs/xc:”命令;如果要恢復(fù)對C盤的掃描,可使用“chkntfs/dc:”命令,即可還原所有chkntfs默認(rèn)設(shè)置,除了自動文件檢查的倒計時之外。2.提高系統(tǒng)運(yùn)行速度提升系統(tǒng)運(yùn)行速度的思路與加快啟動的速度類似:盡量優(yōu)化軟硬件設(shè)置,減輕系統(tǒng)負(fù)擔(dān)。以下是一些常用的優(yōu)化手段。(1)設(shè)置處理器二級緩存容量WindowsXP無法自動檢測處理器的二級緩存容量,需要我們自己在注冊表中手動設(shè)置,首先打開注冊表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”,選擇其下的“SecondLevelDataCache”,根據(jù)自己所用的處理器設(shè)置即可,例如PIIICoppermine/P4Willamette是“256”,AthlonXP是“384”,P4Northwood是“512”。(2)提升系統(tǒng)緩存同樣也是在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”位置,把其下的“LargeSystemCache”鍵值從0改為1,WindowsXP就會把除了4M之外的系統(tǒng)內(nèi)存全部分配到文件系統(tǒng)緩存中,這樣XP的內(nèi)核能夠在內(nèi)存中運(yùn)行,大大提高系統(tǒng)速度。通常來說,該優(yōu)化會使系統(tǒng)性能得到相當(dāng)?shù)奶嵘?,但也有可能會使某些?yīng)用程序性能降低。需要注意的是必須有256M以上的內(nèi)存,激活LargeSystemCache才可起到正面的作用,否則不要輕易改動它。(3)改進(jìn)輸入/輸出性能這個優(yōu)化能夠提升系統(tǒng)進(jìn)行大容量文件傳輸時的性能,不過這只對服務(wù)器用戶才有實(shí)在意義。我們可在中新建一個DWORD(雙字節(jié)值)鍵值,命名為IOPageLockLimit。一般情況下把數(shù)據(jù)設(shè)置8~16MB之間性能最好,要記住這個值是用字節(jié)來計算的,例如你要分配10MB的話,就是10×?1024×1024,也就是10485760。這里的優(yōu)化也需要你的機(jī)器擁有大于256M的內(nèi)存。(4)禁用內(nèi)存頁面調(diào)度在正常情況下,XP會把內(nèi)存中的片斷寫入硬盤,我們可以阻止它這樣做,讓數(shù)據(jù)保留在內(nèi)存中,從而提升系統(tǒng)性能。在注冊表中找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”下的“DisablePagingExecutive”鍵,把它的值從0改為1即可禁止內(nèi)存頁面調(diào)度了。(5)關(guān)閉自動重新啟動功能當(dāng)WindowsXP遇到嚴(yán)重問題時便會突然重新開機(jī),可從注冊表將此功能取消。打開注冊表編輯器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\”將AutoReboot鍵的Dword值更改為0,重新啟動后設(shè)置即可生效。(6)改變視覺效果WindowsXP在默認(rèn)情況下啟用了幾乎所有的視覺效果,如淡入淡出、在菜單下顯示陰影。這些視覺效果雖然漂亮,但對系統(tǒng)性能會有一定的影響,有時甚至造成應(yīng)用軟件在運(yùn)行時出現(xiàn)停頓。一般情況下建議少用或者取消這些視覺效果。選擇桌面上“我的電腦”圖標(biāo),單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“屬性”命令,打開“系統(tǒng)屬性”對話框。選擇“高級”選項(xiàng)卡,在其中的“性能”欄中單擊“設(shè)置”按鈕,會彈出“性能選項(xiàng)”對話框(如圖4),可選擇“調(diào)整為最佳性能”單選框來關(guān)閉所有的視覺效果,也可選擇“自定義”然后選擇自己需要的視覺效果。(7)合理設(shè)置頁面虛擬內(nèi)存同樣也是在“性能選項(xiàng)”對話框中,選擇“高級”選項(xiàng)卡,在其中的“虛擬內(nèi)存”欄中單擊“更改”按鈕,接下來選擇虛擬內(nèi)存為“自定義大小”,然后設(shè)置其數(shù)值。一般情況下,把虛擬設(shè)為不小于256M,不大于382M比較合適,而且最大值和最小值最好一樣。(8)修改外觀方案WindowsXP默認(rèn)的外觀方案雖然漂亮,但對系統(tǒng)資源的占用也多,可將其改為經(jīng)典外觀以獲得更好的性能。在桌面空白位置單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇“屬性”命令,會打開“顯示屬性”對話框,在“主題”選項(xiàng)卡選擇主題為“Windows經(jīng)典”,即可將外觀修改為更為經(jīng)濟(jì)的Windows經(jīng)典外觀。(9)取消XP對ZIP支持WindowsXP在默認(rèn)情況下打開了對zip文件支持,這要占用一定的系統(tǒng)資源,可選擇“開始→運(yùn)行”,在“運(yùn)行”對話框中鍵入“regsvr32/uzipfldr.dll”,回車確認(rèn)即可取消XP對ZIP解壓縮的支持,從而節(jié)省系統(tǒng)資源。(10)關(guān)閉Dr.WatsonDr.Watson是WindowsXP的一個崩潰分析工具,它會在應(yīng)用程序崩潰的時候自動彈出,并且在默認(rèn)情況下,它會將與出錯有關(guān)的內(nèi)存保存為DUMP文件以供程序員分析。不過,記錄DUMP文件對普通用戶則毫無幫助,反而會帶來很大的不便:由于Dr.Watson在應(yīng)用程序崩潰時會對內(nèi)存進(jìn)行DUMP記錄,將出現(xiàn)長時間硬盤讀寫操作,要很長一斷時間程序才能關(guān)閉,并且DUMP文件還會占用大量磁盤空間。要關(guān)閉Dr.Watson可打開注冊表編輯器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AeDebug”分支,雙擊其下的Auto鍵值名稱,將其“數(shù)值數(shù)據(jù)”改為0,最后按F5刷新使設(shè)置生效,這樣就取消它的運(yùn)行了。同樣,我們可以把所有具備調(diào)試功能的選項(xiàng)取消,比如藍(lán)屏?xí)r出現(xiàn)的memory.dmp,可在“系統(tǒng)屬性”對話框中選擇“高級”選項(xiàng)卡,單擊“啟動和故障恢復(fù)”欄中的“設(shè)置”按鈕,并在彈出的“啟動和故障恢復(fù)”對話框中選擇“寫入調(diào)試信息”為“無”(如圖5)。(11)啟動硬盤/光驅(qū)DMA模式打開“系統(tǒng)屬性”對話框,選擇“硬件”選擇卡中的“設(shè)備管理器”按鈕,打開“設(shè)備管理器”窗口,在設(shè)備列表中選擇“IDEATA/ATAPI控制器”,雙擊“主要IDE通道”或“次要IDE通過”,在其屬性對話框的“高級設(shè)置”選項(xiàng)卡中檢查DMA模式是否已啟動,一般來說如果設(shè)備支持,系統(tǒng)就會自動打開DMA功能,如果沒有打開可將“傳輸模式”設(shè)為“DMA(若可用)”。(12)關(guān)掉不用的設(shè)備WindowsXP總是盡可能為電腦的所有設(shè)備安裝驅(qū)動程序并進(jìn)行管理,這不僅會減慢系統(tǒng)啟動的速度,同時也造成了系統(tǒng)資源的大量占用。針對這一情況,你可在設(shè)備管理器中,將PCMCIA卡、調(diào)制解調(diào)器、紅外線設(shè)備、打印機(jī)端口(LPT1)或者串口(COM1)等不常用的設(shè)備停用,方法是雙擊要停用的設(shè)備,在其屬性對話框中的“常規(guī)”選項(xiàng)卡中選擇“不要使用這個設(shè)備(停用)”。在重新啟動設(shè)置即可生效,當(dāng)需要使用這些設(shè)備時再從設(shè)備管理器中啟用它們。(13)關(guān)閉錯誤報告當(dāng)應(yīng)用程序出錯時,會彈出發(fā)送錯誤報告的窗口,其實(shí)這樣的錯誤報告對普通用戶而言幾乎沒有任何意義,關(guān)閉它是明智的選擇。在“系統(tǒng)屬性”對話框中選擇“高級”選項(xiàng)卡,單擊“錯誤報告”按鈕,在彈出的“錯誤匯報”對話框中,選擇“禁用錯誤匯報”單選項(xiàng),最后單擊“確定”即可。另外我們也可以從組策略中關(guān)閉錯誤報告:從“運(yùn)行”中鍵入“gpedit.msc”,運(yùn)行“組策略編輯器”,展開“計算機(jī)配置→管理模板→系統(tǒng)→錯誤報告功能”,雙擊右邊設(shè)置欄中的“報告錯誤”,在彈出的“屬性”對話框中選擇“已禁用”單選框即可將“報告錯誤”禁用。(14)關(guān)閉自動更新“自動更新”功能對許多WindowsXP用戶而言并不是必需的,可將其關(guān)閉以節(jié)省系統(tǒng)資源。在“我的電腦”上單擊鼠標(biāo)右鍵,從快捷菜單中選擇“屬性”命令,選擇“系統(tǒng)屬性”對話框中的“自動更新”選項(xiàng)卡,勾選“關(guān)閉自動更新,我將手動更新計算機(jī)”單選框,單擊“確定”按鈕即可關(guān)閉自動更新功能。如果在“服務(wù)”已經(jīng)將“AutomaticUpdates”服務(wù)關(guān)閉,“系統(tǒng)屬性”對話框中的“自動更新”選項(xiàng)卡就不能進(jìn)行任何設(shè)置了。(15)去掉菜單延遲去掉菜單彈出時的延遲,可以在一定程度上加快XP。要修改的鍵值位置在“HKEY_CURRENT_USER\ControlPanel\Desktop”。修改其下的“MenuShowDelay”鍵,把默認(rèn)的400修改為0,按F5刷新注冊表即可生效。(16)清除預(yù)讀文件WindowsXP的預(yù)讀設(shè)置雖然可以提高系統(tǒng)速度,但是使用一段時間后,預(yù)讀文件夾里的文件數(shù)量會變得相當(dāng)龐大,導(dǎo)致系統(tǒng)搜索花費(fèi)的時間變長。而且有些應(yīng)用程序會產(chǎn)生死鏈接文件,更加重了系統(tǒng)搜索的負(fù)擔(dān)。所以,應(yīng)該定期刪除這些預(yù)讀文件。預(yù)計文件存放在WindowsXP系統(tǒng)文件夾的Prefetch文件夾中,該文件夾下的所有文件均可刪除。(17)關(guān)閉自動播放功能在WindowsXP中,當(dāng)往光驅(qū)中放入光盤或?qū)SB硬盤接上電腦時,系統(tǒng)都會自動將光驅(qū)或USB硬盤掃描一遍,同時提示你是否播放里面的圖片、視頻、音樂等文件,如果是擁有多個分區(qū)的大容量的USB硬盤,掃描會耗費(fèi)很長的時間,而且你得多次手動關(guān)閉提示窗口,非常麻煩。這種情況下我們可以將WindowsXP的自動播放功能關(guān)閉。運(yùn)行“組策略”程序。在組策略窗口左邊欄中,打開“計算機(jī)配置”,選擇“管理模板”下的“系統(tǒng)”,然后在右邊的配置欄中找到“關(guān)閉自動播放”并雙擊它,會彈出“關(guān)閉自動播放屬性”對話框。在其中“設(shè)置”選項(xiàng)卡中選擇“已啟用”,“關(guān)閉自動播放”下拉列表中選擇“所有驅(qū)動器”(如圖6)。這樣以后就不用擔(dān)心WindowsXP的“自動播放”功能帶來的麻煩了。如果你只是想禁止系統(tǒng)掃描某個驅(qū)動器(如USB硬盤)上的文件,可采用下面的方法。先連上你的USB硬盤,讓系統(tǒng)將它識別出來。然后打開“我的電腦”,選擇USB硬盤上的某個分區(qū),按鼠標(biāo)右鍵,會彈出磁盤屬性窗口,選取“自動播放”選項(xiàng)卡,將所有內(nèi)容的類型都選擇為不執(zhí)行操作。如果USB硬盤有多個分區(qū),對所有分區(qū)都進(jìn)行同樣的操作,這樣當(dāng)你將USB驅(qū)動器拔掉再重新接上時,系統(tǒng)會將USB硬盤識別出來,而不會反復(fù)問你是否播放USB硬盤中的文件了。3.加快關(guān)機(jī)速度WindowsXP的關(guān)機(jī)速度要慢于啟動速度,特別有些任務(wù)還需要手工結(jié)束,更加延緩了關(guān)機(jī)速度。因此,要加快關(guān)機(jī)速度,首先要開啟WindowsXP的自動結(jié)束任務(wù)功能。具體步驟是:從注冊表中找到“HKEY_CURRENT_USER\ControlPanel\Desktop”,把“AutoEndTasks”的鍵值設(shè)置為1即可。然后再修改“HungAppTimeout”為“4000(或更小)”(預(yù)設(shè)為5000),該鍵值同樣也在“HKEY_CURRENT_USER\ControlPanel\Desktop”下;最后一步再找到“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\”,同樣把WaitToKillServiceTimeout設(shè)置為“4000”;通過這樣設(shè)置后的關(guān)機(jī)速度明顯要加快了。夠全面吧~~◆二、硬件優(yōu)化設(shè)置◆1、關(guān)掉不用的設(shè)備

在設(shè)備管理器中,將PCMCIA卡、調(diào)制解調(diào)器、紅外線設(shè)備、打印機(jī)端口(LPT1)或者串口(COM1)等不常用的設(shè)備停用,在要停用設(shè)備屬性對話框中的“常規(guī)”選項(xiàng)卡中選擇“不要使用這個設(shè)備(停用)”。當(dāng)需要使用這些設(shè)備時再從設(shè)備管理器中啟用它們?!?、內(nèi)存性能優(yōu)化

WindowsXP中有幾個選項(xiàng)可以優(yōu)化內(nèi)存性能,它們?nèi)荚谧员硐旅嫖恢茫篐KEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession

ManagerMemory

Management

1)禁用內(nèi)存頁面調(diào)度(Paging

Executive)

XP會把內(nèi)存中的片斷寫入硬盤,我們可以阻止它這樣做,讓數(shù)據(jù)保留在內(nèi)存中,從而提升系統(tǒng)性能。256M以上內(nèi)存才使用這個設(shè)置。把“DisablePagingExecutive”的值從0改為1就可以禁止內(nèi)存頁面調(diào)度了。

2)提升系統(tǒng)緩存

必須有256M以上的內(nèi)存,才激活它。把LargeSystemCache鍵值從0改為1,一般來說,這項(xiàng)優(yōu)化會使系統(tǒng)性能得到相當(dāng)?shù)奶嵘?,但也有可能會使某些?yīng)用程序性能降低。

3)輸入/輸出性能

內(nèi)存大于256M才更改這里的值,這個優(yōu)化只對server

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論