欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

CentOS下共享內(nèi)存使用的常見陷阱詳解

  發(fā)布時間:2016-12-14 10:32:19   作者:佚名   我要評論
所謂共享內(nèi)存就是使得多個進(jìn)程可以訪問同一塊內(nèi)存空間,是最快的可用IPC形式。是針對其他通信機制運行效率較低而設(shè)計的。;下面小編為大家?guī)淼氖荂entOS下共享內(nèi)存使用的常見陷阱詳解!一起去看看吧

所謂共享內(nèi)存就是使得多個進(jìn)程可以訪問同一塊內(nèi)存空間,是最快的可用IPC形式。是針對其他通信機制運行效率較低而設(shè)計的。往往與其它通信機制,如信號量結(jié)合使用,來達(dá)到進(jìn)程間的同步及互斥。其他進(jìn)程能把同一段共享內(nèi)存段“連接到”他們自己的地址空間里去。所有進(jìn)程都能訪問共享內(nèi)存中的地址。如果一個進(jìn)程向這段共享內(nèi)存寫了數(shù)據(jù),所做的改動會即時被有訪問同一段共享內(nèi)存的其他進(jìn)程看到。共享內(nèi)存的使用大大降低了在大規(guī)模數(shù)據(jù)處理過程中內(nèi)存的消耗,但是共享內(nèi)存的使用中有很多的陷阱,一不注意就很容易導(dǎo)致程序崩潰。

超過共享內(nèi)存的大小限制?

在一個linux服務(wù)器上,共享內(nèi)存的總體大小是有限制的,這個大小通過SHMMAX參數(shù)來定義(以字節(jié)為單位),您可以通過執(zhí)行以下命令來確定 SHMMAX 的值:

# cat /proc/sys/kernel/shmmax

如果機器上創(chuàng)建的共享內(nèi)存的總共大小超出了這個限制,在程序中使用標(biāo)準(zhǔn)錯誤perror可能會出現(xiàn)以下的信息:

unable to attach to shared memory

解決方法:

1、設(shè)置 SHMMAX

SHMMAX 的默認(rèn)值是 32MB 。一般使用下列方法之一種將 SHMMAX 參數(shù)設(shè)為 2GB :

通過直接更改 /proc 文件系統(tǒng),你不需重新啟動機器就可以改變 SHMMAX 的默認(rèn)設(shè)置。我使用的方法是將以下命令放入 />etc/rc.local 啟動文件中:

# echo "2147483648" > /proc/sys/kernel/shmmax

您還可以使用 sysctl 命令來更改 SHMMAX 的值:

# sysctl -w kernel.shmmax=2147483648

最后,通過將該內(nèi)核參數(shù)插入到 /etc/sysctl.conf 啟動文件中,您可以使這種更改永久有效:

# echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf

2、設(shè)置 SHMMNI

我們現(xiàn)在來看 SHMMNI 參數(shù)。這個內(nèi)核參數(shù)用于設(shè)置系統(tǒng)范圍內(nèi)共享內(nèi)存段的最大數(shù)量。該參數(shù)的默認(rèn)值是 4096 。這一數(shù)值已經(jīng)足夠,通常不需要更改。

您可以通過執(zhí)行以下命令來確定 SHMMNI 的值:

# cat /proc/sys/kernel/shmmni

4096

3、設(shè)置 SHMALL

最后,我們來看 SHMALL 共享內(nèi)存內(nèi)核參數(shù)。該參數(shù)控制著系統(tǒng)一次可以使用的共享內(nèi)存總量(以頁為單位)。簡言之,該參數(shù)的值始終應(yīng)該至少為:

ceil(SHMMAX/PAGE_SIZE)

SHMALL 的默認(rèn)大小為 2097152 ,可以使用以下命令進(jìn)行查詢:

# cat /proc/sys/kernel/shmall

2097152

SHMALL 的默認(rèn)設(shè)置對于我們來說應(yīng)該足夠使用。

注意: 在 i386 平臺上 Red Hat Linux 的 頁面大小 為 4096 字節(jié)。但是,您可以使用 bigpages ,它支持配置更大的內(nèi)存頁面尺寸。

多次進(jìn)行shmat會出現(xiàn)什么問題?

當(dāng)首次創(chuàng)建共享內(nèi)存段時,它并不能被任何進(jìn)程所訪問。為了使共享內(nèi)存區(qū)可以被訪問,則必須通過 shmat 函數(shù)將其附加( attach )到自己的進(jìn)程空間中,這樣進(jìn)程就與共享內(nèi)存建立了連接。該函數(shù)聲明在 linux/shm.h中:

#include

#include

void *shmat(int shmid, const void *shmaddr, int shmflg);

參數(shù) shmid 是 shmget() 的返回值,是個標(biāo)識符;

參數(shù) shmflg 是存取權(quán)限標(biāo)志;如果為 0 ,則不設(shè)置任何限制權(quán)限。在 中定義了幾個權(quán)限:

#define SHM_RDONLY 010000 /* attach read-only else read-write */

#define SHM_RND 020000 /* round attach address to SHMLBA */

#define SHM_REMAP 040000 /* take-over region on attach */

如果指定 SHM_RDONLY ,那么共享內(nèi)存區(qū)只有讀取權(quán)限。

參數(shù) shmaddr 是共享內(nèi)存的附加點,不同的取值有不同的含義:

?如果為空,則由內(nèi)核選擇一個空閑的內(nèi)存區(qū);如果非空,返回地址取決于調(diào)用者是否給 shmflg 參數(shù)指定 SHM_RND 值,如果沒有指定,則共享內(nèi)存區(qū)附加到由 shmaddr 指定的地址;否則附加地址為 shmaddr 向下舍入一個共享內(nèi)存低端邊界地址后的地址 (SHMLBA ,一個常址)。

Ø通常將參數(shù) shmaddr 設(shè)置為 NULL 。

shmat() 調(diào)用成功后返回一個指向共享內(nèi)存區(qū)的指針,使用該指針就可以訪問共享內(nèi)存區(qū)了,如果失敗則返回 -1。

其映射關(guān)系如下圖所示:

圖1.1 共享內(nèi)存映射圖

其中,shmaddr表示的是物理內(nèi)存空間映射到進(jìn)程的虛擬內(nèi)存空間時候,虛擬內(nèi)存空間中該塊內(nèi)存的起始地址,在使用中,因為我們一般不清楚進(jìn)程中哪些地址沒有被占用,所以不好指定物理空間的內(nèi)存要映射到本進(jìn)程的虛擬內(nèi)存地址,一般會讓內(nèi)核自己指定:

void ptr = shmat(shmid, NULL,0);

這樣掛載一個共享內(nèi)存如果是一次調(diào)用是沒有問題的,但是一個進(jìn)程是可以對同一個共享內(nèi)存多次 shmat進(jìn)行掛載的,物理內(nèi)存是指向同一塊,如果shmaddr為NULL,則每次返回的線性地址空間都不同。而且指向這塊共享內(nèi)存的引用計數(shù)會增加。也就是進(jìn)程多塊線性空間會指向同一塊物理地址。這樣,如果之前掛載過這塊共享內(nèi)存的進(jìn)程的線性地址沒有被shmdt掉,即申請的線性地址都沒有釋放,就會一直消耗進(jìn)程的虛擬內(nèi)存空間,很有可能會最后導(dǎo)致進(jìn)程線性空間被使用完而導(dǎo)致下次shmat或者其他操作失敗。

解決方法:

可以通過判斷需要申請的共享內(nèi)存指針是否為空來標(biāo)識是否是第一次掛載共享內(nèi)存,若是則使用進(jìn)行掛載,若不是則退出。

void* ptr = NULL;

...

if (NULL != ptr)

return;

ptr = shmat(shmid,ptr,0666);

附:

函數(shù)shmat將標(biāo)識號為shmid共享內(nèi)存映射到調(diào)用進(jìn)程的地址空間中,映射的地址由參數(shù)shmaddr和shmflg共同確定,其準(zhǔn)則為:

(1) 如果參數(shù)shmaddr取值為NULL,系統(tǒng)將自動確定共享內(nèi)存鏈接到進(jìn)程空間的首地址。

(2) 如果參數(shù)shmaddr取值不為NULL且參數(shù)shmflg沒有指定SHM_RND標(biāo)志,系統(tǒng)將運用地址shmaddr鏈接共享內(nèi)存。

(3) 如果參數(shù)shmaddr取值不為NULL且參數(shù)shmflg指定了SHM_RND標(biāo)志位,系統(tǒng)將地址shmaddr對齊后鏈接共享內(nèi)存。其中選項SHM_RND的意思是取整對齊,常數(shù)SHMLBA代表了低邊界地址的倍數(shù),公式“shmaddr – (shmaddr % SHMLBA)”的意思是將地址shmaddr移動到低邊界地址的整數(shù)倍上。

Shmget創(chuàng)建共享內(nèi)存,當(dāng)key相同時,什么情況下會出錯?

shmget() 用來創(chuàng)建一個共享內(nèi)存區(qū),或者訪問一個已存在的共享內(nèi)存區(qū)。該函數(shù)定義在頭文件 linux/shm.h中,原型如下:

#include

#include

int shmget(key_t key, size_t size, int shmflg);

參數(shù) key是由 ftok() 得到的鍵值;

參數(shù) size 是以字節(jié)為單位指定內(nèi)存的大??;

參數(shù) shmflg 是操作標(biāo)志位,它的一些宏定義如下:

IPC_CREATE : 調(diào)用 shmget 時,系統(tǒng)將此值與其他共享內(nèi)存區(qū)的 key 進(jìn)行比較,如果存在相同的 key ,說明共享內(nèi)存區(qū)已存在,此時返回該共享內(nèi)存區(qū)的標(biāo)識符,否則新建一個共享內(nèi)存區(qū)并返回其標(biāo)識符。

IPC_EXCL : 該宏必須和 IPC_CREATE 一起使用,否則沒意義。當(dāng) shmflg 取 IPC_CREATE | IPC_EXCL 時,表示如果發(fā)現(xiàn)內(nèi)存區(qū)已經(jīng)存在則返回 -1,錯誤代碼為 EEXIST 。

注意,當(dāng)創(chuàng)建一個新的共享內(nèi)存區(qū)時,size 的值必須大于 0 ;如果是訪問一個已經(jīng)存在的內(nèi)存共享區(qū),則置 size 為 0 。

一般我們創(chuàng)建共享內(nèi)存的時候會在一個進(jìn)程中使用shmget來創(chuàng)建共享內(nèi)存,

Int shmid = shmget(key, size, IPC_CREATE|0666);

而在另外的進(jìn)程中,使用shmget和同樣的key來獲取到這個已經(jīng)創(chuàng)建了的共享內(nèi)存,

Int shmid = shmget(key, size, IPC_CREATE|0666);

如果創(chuàng)建進(jìn)程和掛接進(jìn)程key相同,而對應(yīng)的size大小不同,是否會shmget失敗?

Ø 已經(jīng)創(chuàng)建的共享內(nèi)存的大小是可以調(diào)整的,但是已經(jīng)創(chuàng)建的共享內(nèi)存的大小只能調(diào)小,不能調(diào)大

如:

shm_id = shmget(key,4194304,IPC_CREAT);

創(chuàng)建了一個4M大小的共享內(nèi)存,如果這個共享內(nèi)存沒有刪掉,我們再使用

shm_id = shmget(key,10485760,IPC_CREAT);

來創(chuàng)建一個10M大小的共享內(nèi)存的時候,使用標(biāo)準(zhǔn)錯誤輸出會有如下錯誤信息:

shmget error: Invalid argument

但是,如果我們使用:

shm_id = shmget(key,3145728,IPC_CREAT);

來創(chuàng)建一個3M大小的共享內(nèi)存的時候,并不會輸出錯誤信息,只是共享內(nèi)存大小會被修改為3145728,這也說明,使用共享內(nèi)存的時候,是用key來作為共享內(nèi)存的唯一標(biāo)識的,共享內(nèi)存的大小不能區(qū)分共享內(nèi)存。

這樣會導(dǎo)致什么問題?

當(dāng)多個進(jìn)程都能創(chuàng)建共享內(nèi)存的時候,如果key出現(xiàn)相同的情況,并且一個進(jìn)程需要創(chuàng)建的共享內(nèi)存的大小要比另外一個進(jìn)程要創(chuàng)建的共享內(nèi)存小,共享內(nèi)存大的進(jìn)程先創(chuàng)建共享內(nèi)存,共享內(nèi)存小的進(jìn)程后創(chuàng)建共享內(nèi)存,小共享內(nèi)存的進(jìn)程就會獲取到大的共享內(nèi)存進(jìn)程的共享內(nèi)存, 并修改其共享內(nèi)存的大小和內(nèi)容(留意下面的評論補充),從而可能導(dǎo)致大的共享內(nèi)存進(jìn)程崩潰。

解決方法:

方法一:

在所有的共享內(nèi)存創(chuàng)建的時候,使用排他性創(chuàng)建,即使用IPC_EXCL標(biāo)記:

Shmget(key, size,IPC_CREATE|IPC_EXCL);

在共享內(nèi)存掛接的時候,先使用排他性創(chuàng)建判斷共享內(nèi)存是否已經(jīng)創(chuàng)建,如果還沒創(chuàng)建則進(jìn)行出錯處理,若已經(jīng)創(chuàng)建,則掛接:

Shmid = Shmget(key, size,IPC_CREATE|IPC_EXCL);

If (-1 != shmid)

{

Printf("error");

}

Shmid = Shmget(key, size,IPC_CREATE);

方法二:

雖然都希望自己的程序能和其他的程序預(yù)先約定一個唯一的鍵值,但實際上并不是總可能的成行的,因為自己的程序無法為一塊共享內(nèi)存選擇一個鍵值。因此,在此把key設(shè)為IPC_PRIVATE,這樣,操作系統(tǒng)將忽略鍵,建立一個新的共享內(nèi)存,指定一個鍵值,然后返回這塊共享內(nèi)存IPC標(biāo)識符ID。而將這個新的共享內(nèi)存的標(biāo)識符ID告訴其他進(jìn)程可以在建立共享內(nèi)存后通過派生子進(jìn)程,或?qū)懭胛募蚬艿纴韺崿F(xiàn),即這種方法不使用key來創(chuàng)建共享內(nèi)存,由操作系統(tǒng)來保證唯一性。

ftok是否一定會產(chǎn)生唯一的key值?

系統(tǒng)建立IPC通訊(如消息隊列、共享內(nèi)存時)必須指定一個ID值。通常情況下,該id值通過ftok函數(shù)得到。

ftok原型如下:

key_t ftok( char * pathname, int proj_id)

pathname就時你指定的文件名,proj_id是子序號。

在一般的UNIX實現(xiàn)中,是將文件的索引節(jié)點號取出,前面加上子序號得到key_t的返回值。如指定文件的索引節(jié)點號為65538,換算成16進(jìn)制為0×010002,而你指定的proj_id值為38,換算成16進(jìn)制為0×26,則最后的key_t返回值為0×26010002。

查詢文件索引節(jié)點號的方法是: ls -i

但當(dāng)刪除重建文件后,索引節(jié)點號由操作系統(tǒng)根據(jù)當(dāng)時文件系統(tǒng)的使用情況分配,因此與原來不同,所以得到的索引節(jié)點號也不同。

根據(jù)pathname指定的文件(或目錄)名稱,以及proj_id參數(shù)指定的數(shù)字,ftok函數(shù)為IPC對象生成一個唯一性的鍵值。在實際應(yīng)用中,很容易產(chǎn)生的一個理解是,在proj_id相同的情況下,只要文件(或目錄)名稱不變,就可以確保ftok返回始終一致的鍵值。然而,這個理解并非完全正確,有可能給應(yīng)用開發(fā)埋下很隱晦的陷阱。因為ftok的實現(xiàn)存在這樣的風(fēng)險,即在訪問同一共享內(nèi)存的多個進(jìn)程先后調(diào)用ftok函數(shù)的時間段中,如果pathname指定的文件(或目錄)被刪除且重新創(chuàng)建,則文件系統(tǒng)會賦予這個同名文件(或目錄)新的i節(jié)點信息,于是這些進(jìn)程所調(diào)用的ftok雖然都能正常返回,但得到的鍵值卻并不能保證相同。由此可能造成的后果是,原本這些進(jìn)程意圖訪問一個相同的共享內(nèi)存對象,然而由于它們各自得到的鍵值不同,實際上進(jìn)程指向的共享內(nèi)存不再一致;如果這些共享內(nèi)存都得到創(chuàng)建,則在整個應(yīng)用運行的過程中表面上不會報出任何錯誤,然而通過一個共享內(nèi)存對象進(jìn)行數(shù)據(jù)傳輸?shù)哪康膶o法實現(xiàn)。

所以如果要確保key_t值不變, 要么確保ftok的文件不被刪除,要么不用ftok,指定一個固定的key_t值。

如果存在生成key_t值的文件被刪除過,則很有可能自己現(xiàn)在使用的共享內(nèi)存key_t值會和另外一個進(jìn)程的key_t值沖突,如下面這種情況:

進(jìn)程1使用文件1來ftok生成了key10000,進(jìn)程2使用文件2來ftok生成了key 11111,此時如果進(jìn)程1和進(jìn)程2都需要下載文件,并將文件的內(nèi)容更新到共享內(nèi)存,此時進(jìn)程1和2都需要先下文件,再刪掉之前的共享內(nèi)存,再使用ftok生成新的key,再用這個key去申請新的共享內(nèi)存來裝載新的問題,但是可能文件2比較大,下載慢,而文件1比較小,下載比較慢,由于文件1和文件2都被修改,此時文件1所占用的文件節(jié)點號可能是文件2之前所占用的,此時如果下載的文件1的ftok生成的key為11111的話,就會和此時還沒有是否11111這個key的進(jìn)程2的共享內(nèi)存沖突,導(dǎo)致出現(xiàn)問題。

解決方法:

方法一:

在有下載文件操作的程序中,對下載的文件使用ftok獲取key的時候,需要進(jìn)行沖突避免的措施,如使用獨占的方式獲取共享內(nèi)存,如果不成功,則對key進(jìn)行加一操作,再進(jìn)行獲取共享內(nèi)存,一直到不會產(chǎn)生沖突為止。

方法二:

下載文件之前,將之前的文件進(jìn)行mv一下,先“占”著這個文件節(jié)點號,防止其他共享內(nèi)存申請key的時候獲取到。

另外:

創(chuàng)建進(jìn)程在通知其他進(jìn)程掛接的時候,建議不使用ftok方式來獲取Key,而使用文件或者進(jìn)程間通信的方式告知。

共享內(nèi)存刪除的陷阱?

當(dāng)進(jìn)程結(jié)束使用共享內(nèi)存區(qū)時,要通過函數(shù) shmdt 斷開與共享內(nèi)存區(qū)的連接。該函數(shù)聲明在 sys/shm.h 中,其原型如下:

#include

#include

int shmdt(const void *shmaddr);

參數(shù) shmaddr 是 shmat 函數(shù)的返回值。

進(jìn)程脫離共享內(nèi)存區(qū)后,數(shù)據(jù)結(jié)構(gòu) shmid_ds 中的 shm_nattch 就會減 1 。但是共享段內(nèi)存依然存在,只有 shm_attch 為 0 后,即沒有任何進(jìn)程再使用該共享內(nèi)存區(qū),共享內(nèi)存區(qū)才在內(nèi)核中被刪除。一般來說,當(dāng)一個進(jìn)程終止時,它所附加的共享內(nèi)存區(qū)都會自動脫離。

我們通過:

int shmctl( int shmid , int cmd , struct shmid_ds *buf );

來刪除已經(jīng)存在的共享內(nèi)存。

第一個參數(shù),shmid,是由shmget所返回的標(biāo)記符。

第二個參數(shù),cmd,是要執(zhí)行的動作。他可以有三個值:

命令 描述

IPC_STAT 設(shè)置shmid_ds結(jié)構(gòu)中的數(shù)據(jù)反射與共享內(nèi)存相關(guān)聯(lián)的值。

IPC_SET 如果進(jìn)程有相應(yīng)的權(quán)限,將與共享內(nèi)存相關(guān)聯(lián)的值設(shè)置為shmid_ds數(shù)據(jù)結(jié)構(gòu)中所提供的值。

IPC_RMID 刪除共享內(nèi)存段。

第三個參數(shù),buf,是一個指向包含共享內(nèi)存模式與權(quán)限的結(jié)構(gòu)的指針,刪除的時候可以默認(rèn)為0。

如果共享內(nèi)存已經(jīng)與所有訪問它的進(jìn)程斷開了連接,則調(diào)用IPC_RMID子命令后,系統(tǒng)將立即刪除共享內(nèi)存的標(biāo)識符,并刪除該共享內(nèi)存區(qū),以及所有相關(guān)的數(shù)據(jù)結(jié)構(gòu);

如果仍有別的進(jìn)程與該共享內(nèi)存保持連接,則調(diào)用IPC_RMID子命令后,該共享內(nèi)存并不會被立即從系統(tǒng)中刪除,而是被設(shè)置為IPC_PRIVATE狀態(tài),并被標(biāo)記為”已被刪除”(使用ipcs命令可以看到dest字段);直到已有連接全部斷開,該共享內(nèi)存才會最終從系統(tǒng)中消失。

需要說明的是:一旦通過shmctl對共享內(nèi)存進(jìn)行了刪除操作,則該共享內(nèi)存將不能再接受任何新的連接,即使它依然存在于系統(tǒng)中!所以,可以確知, 在對共享內(nèi)存刪除之后不可能再有新的連接,則執(zhí)行刪除操作是安全的;否則,在刪除操作之后如仍有新的連接發(fā)生,則這些連接都將可能失?。?/p>

Shmdt和shmctl的區(qū)別:

Shmdt 是將共享內(nèi)存從進(jìn)程空間detach出來,使進(jìn)程中的shmid無效化,不可以使用。但是保留空間。

而shmctl(sid,IPC_RMID,0)則是刪除共享內(nèi)存,徹底不可用,釋放空間。

相關(guān)文章

  • centos手動釋放內(nèi)存的方法

    今天小編為大家?guī)淼氖莄entos手動釋放內(nèi)存的方法詳解。希望可以幫助到大家;有需要的朋友可以過來看看
    2016-12-14
  • Centos內(nèi)存使用與優(yōu)化技巧

    今天小編為大家?guī)淼氖荂entos內(nèi)存使用與優(yōu)化技巧;希望對大家學(xué)習(xí)Centos會有幫助;有需要的朋友可以過來看看
    2016-12-07
  • Centos內(nèi)存占滿如何釋放內(nèi)存?

    一臺老的PHP后臺服務(wù)器,今天用 free -m 查看,發(fā)現(xiàn)內(nèi)存跑滿了。再 top,然后按下shift+m,也就是按內(nèi)存占用百分比排序,發(fā)現(xiàn)排在第一的進(jìn)程,才占用0.9%,那是什么占用的
    2016-11-22
  • centos7怎么查看cpu內(nèi)存等系統(tǒng)性能參數(shù)?

    centos7怎么查看cpu內(nèi)存等系統(tǒng)性能參數(shù)?對centos系統(tǒng)不是很熟悉,想看看電腦的一些參數(shù),該怎么查看呢?下面我們就來看看詳細(xì)的查看教程,需要的朋友可以參考下
    2016-08-30
  • 在低內(nèi)存的情況下安裝CentOS系統(tǒng)的技巧

    這篇文章主要介紹了在低內(nèi)存的情況下安裝CentOS系統(tǒng)的技巧,有些跑不起Windows的古董級電腦不妨直接安裝帶圖形化界面的CentOS,還有利于編程學(xué)習(xí)~需要的朋友可以參考下
    2015-06-30
  • CentOS 5.3 安裝tomcat-6.0.18 和設(shè)置tomcat環(huán)境變量 內(nèi)存視頻教程

    CentOS5.3 安裝tomcat-6.0.18 和設(shè)置tomcat環(huán)境變量,內(nèi)存 上次視頻安裝了jdk,現(xiàn)在我們來安裝tomcat服務(wù)器, 我簡單介紹一些tomcat服務(wù)器吧,它可以運行jsp文件,servlet
    2010-01-02
  • Centos學(xué)習(xí)路線指南

    Linux對于新人來說,Linux到底學(xué)了什么知識,到達(dá)了何種程度,一直是個困惑。今天小編就整理下Linux不同階段對應(yīng)的知識體系,即Linux的學(xué)習(xí)路線指南;一起去看看吧
    2016-12-14
  • CentOS中命令選項及參數(shù)簡介兩者區(qū)別的講解

    有些朋友在學(xué)習(xí)Linux命令時,包括在學(xué)習(xí)Windows下的一些命令時,區(qū)分不清“選項”和“參數(shù)”的概念,也不明白Linux命令下選項及參數(shù)的格式;下面小編就為大家?guī)鞢entOS中
    2016-12-14
  • Centos下lvm擴容詳解

    因生產(chǎn)需要對/data目錄進(jìn)行擴容,由原來的90G擴容到190G,增加100G的空間。今天小編為大家?guī)淼氖荂entos下lvm擴容詳解;有需要的朋友可以過來看看
    2016-12-14
  • CentOS下CronTab任務(wù)周期計劃詳解

    今天小編為大家?guī)淼氖荂entOS下CronTab任務(wù)周期計劃的詳解,有需要的朋友可以過來看看,希望可以幫助到大家
    2016-12-14

最新評論