




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Linux 性能調(diào)優(yōu)目錄1. “ /etc/profile”文件2. “ bdflush ”參數(shù)3. “ ip_local_port_range”參數(shù)4. “ /etc/nsswitch.conf”文件5. “ /proc”文件系統(tǒng)6. “ ulimit ”參數(shù)7. 增加系統(tǒng)打開(kāi)的文件數(shù)目8. 文件“ atime ”屬性9. 文件的“ noatime ”屬性10. 特定的 TCP/IP棧11. 交換分區(qū)12. 調(diào)整 IDE 硬盤性能概述優(yōu)化網(wǎng)絡(luò)性能在很大程度上與網(wǎng)絡(luò)上使用的軟硬件相關(guān)。 如何優(yōu)化網(wǎng)絡(luò)是很難用一本書(shū) 說(shuō)得清楚的。在網(wǎng)絡(luò)真正運(yùn)行起來(lái)之前是很難知道網(wǎng)絡(luò)的瓶頸所在。性能優(yōu)化并不是很 簡(jiǎn)
2、單和直觀的,必須當(dāng)作一個(gè)很復(fù)雜的任務(wù)。而且,不僅受到很多約束還需要很高的精 確度。 除非進(jìn)行專門的測(cè)試以診斷系統(tǒng)中的瓶頸, 否則對(duì)一些現(xiàn)象很難做出解釋。 有時(shí), 性能優(yōu)化會(huì)變成一項(xiàng)讓人十分失望并且乏味的工作, 尤其是在經(jīng)過(guò)大量的分析之后所得 到的結(jié)果仍然不可確定的時(shí)候。但是,對(duì)系統(tǒng)性能的優(yōu)化是一項(xiàng)很有回報(bào)的工作,并且 會(huì)給整個(gè)系統(tǒng)帶來(lái)長(zhǎng)期的益處。1. “ /etc/profile”文件“ etc/profile”文件含有系統(tǒng)大量的環(huán)境和啟動(dòng)程序的配置信息。你在該文件中進(jìn)行的配置, 可以通過(guò)申請(qǐng)全局環(huán)境變量來(lái)實(shí)現(xiàn)。 因此, 在該文件中設(shè)置優(yōu)化標(biāo)志, 是一種明智的選擇。要 想使 x86程序獲得最佳
3、性能, 可以在編譯時(shí), 使用最佳的優(yōu)化選項(xiàng) -O9 。 許多程序的 “ Makefile ” 文件中已經(jīng)含有 -O2選項(xiàng),而 -O9使編譯器采用最高級(jí)別的優(yōu)化。盡管它將增加最終程序的大 小,但這樣可以獲得更高的運(yùn)行速度。編譯時(shí),使用“ -fomit-frame-pointer ”選項(xiàng),程序運(yùn)行 時(shí),訪問(wèn)變量時(shí)將使用堆棧。但是,使用這一選項(xiàng),生產(chǎn)的代碼將無(wú)法調(diào)試。使用“ -mcpu=cpu_type” 和 “ -march=cpu_type” 選項(xiàng), Gcc 將針對(duì)這種型號(hào) CPU 進(jìn)行專門的優(yōu)化, 但生成的代碼只能在所指定的 CPU 或更高系列的 CPU 上運(yùn)行。對(duì)于 CPU i686或 Pe
4、ntiumPro 、 Pentium II、 Pentium III在“ /etc/profile”文件中 , 加入一行:CFLAGS= -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions對(duì)于 CPU i586或 Pentium在“ etc/profile”文件中 , 加入一行:CFLAGS= -O3 -march=pentium -mcpu=pentium -ffast-math -funroll-loops
5、-fomit-frame-pointer -fforce-mem -fforce-addr -malign-double -fno-exceptions對(duì)于 CPU i486在“ etc/profile”文件中 , 加入一行:CFLAGS= -O3 -funroll-all-loops -malign-double -mcpu=i486 -march=i486 -fomit-frame-pointer -fno-exceptions 在進(jìn)行完以上設(shè)置之后, 緊接者著把 “ CFLAGS LANG LESSCHARSET” 加入到 “ etc/profile” 文件中的“ export ”行中:
6、export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL INPUTRC CFLAGS LANG LESSCHARSET然后, 重新登錄, 這時(shí), 環(huán)境變量 CFLAGS 已經(jīng)被賦值, 編譯器和其它配置工具可以使用它。 對(duì) Pentium (Pro/II/III的優(yōu)化必須使用 egcs 或 pgcc 編譯器。 Linux 的缺省安裝中,已經(jīng)裝上 了 egcs ,所以無(wú)需擔(dān)心?;鶞?zhǔn)測(cè)試結(jié)果(按體系結(jié)構(gòu)分類 :由于 CPU 的體系結(jié)構(gòu)和使用的 gcc/egcs的版本不同,優(yōu)化選項(xiàng)也會(huì)不同。下面的圖表可以幫 助你根據(jù)自己的 CP
7、U 和編譯器,選擇最佳的編譯選項(xiàng)。為了確認(rèn)編譯器的版本,使用如下命令:rootdeep# egcs -version?,F(xiàn)舉例說(shuō)明:CFLAGS= -O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptionsCFLAGS= -O3 -march=pentium -mcpu=pentium -ffast-math -funroll-loops -fomit-frame-pointer -fforce-mem -fforce-a
8、ddr -malign-double -fno-exceptionsCFLAGS= -O3 -funroll-all-loops -malign-double -mcpu=i486 -march=i486 -fomit-frame-pointer -fno-exceptions -funroll-loops 選項(xiàng)對(duì)“ loop unrolling”進(jìn)行優(yōu)化,只對(duì)在編譯或運(yùn)行時(shí)循環(huán)次數(shù)能確定的循環(huán)語(yǔ)句有效。 -funroll-all-loops對(duì)“ loop unrolling”進(jìn)行優(yōu)化,對(duì)所有的循環(huán)語(yǔ)句有效,擔(dān)通常使程序運(yùn)行變慢。-ffast-math該選項(xiàng)使 GCC 可以不遵從 ANSI 或
9、 IEEE 的規(guī)則,以獲得運(yùn)行更快的優(yōu)化代碼。例如:它允 許編譯器假設(shè) sqrt(函數(shù)的輸入?yún)?shù)非負(fù)以及所有的浮點(diǎn)數(shù)的值都是 NaNs 。-malign-doubleGCC 把 double, long double, and long long類型變量定界在雙字還是單字邊界上,由該選項(xiàng)控 制。 double 類型變量定界于雙字邊界時(shí),產(chǎn)生的代碼在 Pentium 機(jī)器上可以運(yùn)行得更快一些, 但是會(huì)占用更多的內(nèi)存。-mcpu=cpu_type設(shè)定在生成指令時(shí)缺省的機(jī)器和 CPU 類型, 設(shè)定好某一特定的 CPU 類型后, 編譯器將針對(duì)這 種芯片產(chǎn)生相應(yīng)的指令,如果不使用“ -march=cpu
10、_type”選項(xiàng),編譯器不會(huì)產(chǎn)生任何不能在 i386上運(yùn)行的代碼。 “ i586”等價(jià)于“ pentium ” , “ i686”等價(jià)于“ pentiumpro ” , “ k6”指明是使 用 AMD 的芯片而非 Intel 系列。-march=cpu_type為指定類型的機(jī)器和 CPU 產(chǎn)生指令。這里的 CPU 類型與“ -mcpu ”中列出的相同。而且,使 用本選項(xiàng)已經(jīng)隱含了“ -mcpu=cpu_type”選項(xiàng)。-fforce-mem對(duì)于涉及內(nèi)存操作的運(yùn)算 , 強(qiáng)制把操作數(shù)拷貝到寄存器中。這是通過(guò)把所有的內(nèi)存引用轉(zhuǎn)換成 潛在的普通子表達(dá)式, 以獲得優(yōu)化代碼。 如果, 這些內(nèi)存引用不是普通
11、子表達(dá)式, 可以通過(guò)指令的組合,消除單獨(dú)的寄存器裝載。-fforce-addr運(yùn)算前把內(nèi)存地址常數(shù)拷貝到寄存器中。所產(chǎn)生的優(yōu)化代碼與選項(xiàng)“ -fforce-mem ”類似。 -fomit-frame-pointer對(duì)于不必要的框架指針(frame pointer ,不在寄存器中保存。這就避免了相應(yīng)的用于保存、設(shè) 置和恢復(fù)框架指針?biāo)璧闹噶? 這樣, 許多函數(shù)中可以使用額外的寄存器。 但是, 這一選項(xiàng)使 得在大多數(shù)機(jī)器上無(wú)法進(jìn)行調(diào)試。注意:本書(shū)將要討論的所有優(yōu)化,缺省都是針對(duì) Pentium II/III 系列 CPU 。因此,如有必要, 對(duì)于某些專門的 CPU 需要調(diào)整編譯參數(shù)。2. “ bd
12、flush ”參數(shù)下文討論目錄“ /proc/sys/vm”下的系統(tǒng)控制文件,且只在 Linux 內(nèi)核版本 2.2下有效??刂圃?目錄下的文件, 可以調(diào)整 Linux 內(nèi)核子系統(tǒng)-虛擬內(nèi)存 (VM 的行為, 其中 bdflush 文件對(duì) 于硬盤使用有一定影響。該文件控制了 bdflush 內(nèi)核守護(hù)進(jìn)程的行為。我們通常使用以下命令 來(lái)提高文件系統(tǒng)的性能:echo "100 1200 128 512 15 5000 500 1884 2">/proc/sys/vm/bdflush修改某些值, 可以使系統(tǒng)響應(yīng)更快, 例如:可以使系統(tǒng)在寫(xiě)入硬盤之前等待更長(zhǎng)時(shí)間, 從而避 免了
13、一些硬盤訪問(wèn)的沖突。把該命令加入文件“ etc/rc.d/rc.local”之中,每次重新啟動(dòng)機(jī)器時(shí),就不必再次手工敲入這條 命令了。如果需要進(jìn)一步理解如何改進(jìn)有關(guān)虛擬內(nèi)存、硬盤緩沖和交換空間(swap 的內(nèi)核參數(shù),可 以參照“ /usr/src/linux/Documentation/sysctl/vm.txt” 。3. “ ip_local_port_range”參數(shù)下文討論目錄“ /proc/sys/net/ipv4/ip_local_port_range”下的系統(tǒng)控制文件,且只在 Linux 內(nèi)核 版本 2.2下有效?!?ip_local_port_range”文件中有兩個(gè)參數(shù)分別定義
14、了用作 TCP 和 UDP 本地端口的端口范圍。 第一個(gè)參數(shù)是第一個(gè)端口號(hào)。 第二個(gè)參數(shù)是最后一個(gè)本地端口號(hào)。 對(duì)于使用率很高的系統(tǒng), 可 以修改為:32768到 61000。echo *32768 61000* > /proc/sys/net/ipv4/ip_local_port_range把該命令加入文件“ /etc/rc.d/rc.local”之中,每次重新啟動(dòng)機(jī)器時(shí),就不必再次手工敲入這條 命令了。4. “ /etc/nsswitch.conf”文件“ etc/nsswitch.conf”文件定義了系統(tǒng)使用哪些服務(wù)來(lái)解析主機(jī)名、獲得口令文件和組文件 (group file 。我們
15、的系統(tǒng)中由于沒(méi)有使用 NIS 服務(wù),因此口令文件和組文件我們沒(méi)有使用。 這里,我們只討論該文件中的 hosts 這一行。編輯“ nsswitch.conf ”文件(vi /etc/nsswitch.conf ,把 host 一行改為:"hosts: dns files"含義:當(dāng)請(qǐng)求解析地址時(shí), 首先訪問(wèn) DNS 服務(wù)器, 如果 DNS 服務(wù)器沒(méi)有響應(yīng), 則使用 “ /etc/hosts” 文件。我建議把該文件中每一行中的 NIS 都刪掉。當(dāng)然,如果你一定要使用 NIS ,就不能刪掉 NIS 。 最后,這個(gè)文件會(huì)是這樣:passwd: filesshadow: filesgr
16、oup: fileshosts: dns filesbootparams: filesethers: filesnetmasks: filesnetworks: filesprotocols: filesrpc: filesservices: filesautomount: filesaliases: files5. “ /proc”文件系統(tǒng)下文討論目錄 “ proc/sys/fs” 下的系統(tǒng)控制文件, 且只在 Linux 內(nèi)核版本 2.2下有效。 該目錄下 的文件可以用來(lái)調(diào)整和監(jiān)測(cè) Linux 內(nèi)核的一些行為。 對(duì)這些文件的誤操作可能攪亂系統(tǒng), 因此 在實(shí)際調(diào)整系統(tǒng)之前,最好把文檔和源代碼都
17、讀一下。適當(dāng)?shù)脑黾印?/proc/sys/fs/file-max”的值:每 4M 內(nèi)存對(duì)應(yīng) 256,例如:內(nèi)存為 128M 的機(jī)器, 該值可以設(shè)為 8192(128/4=32 32*256=8192。同理,可以增加“ /proc/sys/fs/inode-max”的值, 使其值為打開(kāi)文件數(shù)目的 3到 4倍 (8192*4=32768。這是因?yàn)?i 節(jié)點(diǎn)的數(shù)目至少等于打開(kāi)的 文件數(shù),一般而言,對(duì)于大文件, i 節(jié)點(diǎn)數(shù)遠(yuǎn)大于打開(kāi)的文件數(shù)目。用于改變 /proc目錄及其子目錄下的任意參數(shù)的常用命令是(必須以 root 登錄 : echo “新的 參數(shù)值” > “ /proc/所需更改的文件”
18、,對(duì)于上面所涉及的修改,其命令為:echo "8192" >/proc/sys/fs/file-maxecho "32768" >/proc/sys/fs/inode-max上文所討論的方法修改了內(nèi)核源代碼的常數(shù)。 但是, 在新的內(nèi)核源代碼樹(shù)中并不能起作用, 因 此還不能算是最好的方法。最好的一種方法是把上述命令加入文件“ etc/rc.d/rc.local”之中。 在該文件的最后加入以下兩行(假設(shè)系統(tǒng)有 128M 內(nèi)存 :echo "8192" >/proc/sys/fs/file-maxecho "32
19、768" >/proc/sys/fs/inode-max其中的數(shù)值因系統(tǒng)不同, 差異很大, 應(yīng)該根據(jù)各自系統(tǒng), 按照上述的公式計(jì)算。 一臺(tái)文件服務(wù) 器或 WEB 服務(wù)器需要打開(kāi)的文件數(shù)目就很大,而用于數(shù)值的服務(wù)器該數(shù)值就較小。對(duì)于內(nèi)存非常多的系統(tǒng),特別是 512M 或更多內(nèi)存的系統(tǒng),打開(kāi)的文件數(shù)和 i 節(jié)點(diǎn)數(shù)最好不要 超過(guò) 50,000和 150,000。“ file-max ”參數(shù)是指 Linux 內(nèi)核可以分配的文件句柄的最大數(shù)目。當(dāng)系統(tǒng)經(jīng)常報(bào)錯(cuò):文件句 柄不夠時(shí),就需要適當(dāng)增大該參數(shù)的值。系統(tǒng)缺省值為:4096?!?inode-max ” 參數(shù)是指系統(tǒng) i 節(jié)點(diǎn)句柄的最大數(shù)
20、目。 其值應(yīng)該是 file-max 值的 3到 4倍。 因?yàn)?標(biāo)準(zhǔn)輸入輸出文件和網(wǎng)絡(luò)套接字都要使用 i 節(jié)點(diǎn)來(lái)進(jìn)行處理。如果系統(tǒng)經(jīng)常性的出現(xiàn) i 節(jié)點(diǎn)被 耗盡的情況,就需要增大其值。6. “ ulimit ”參數(shù)Linux 本身對(duì)每個(gè)用戶擁有的最大進(jìn)程數(shù)有限制??梢栽谟脩舾夸浵碌摹?.bashrc ”文件或者 實(shí)際使用與“ .bashrc ”功能相當(dāng)?shù)?shell 的腳本中加入這種限制。編輯“ .bashrc ”文件(例如: vi /root/.bashrc并加入下面一行:ulimit -u unlimited然后退出,重新登錄。為了驗(yàn)證,可以以 root 身份登錄,然后鍵入:“ ulimi
21、t a ” ,在最大 用戶進(jìn)程數(shù)一項(xiàng)中應(yīng)該顯示“ unlimited ” ,例如:rootdeep# ulimit -acore file size (blocks 1000000data seg size (kbytes unlimitedfile size (blocks unlimitedmax memory size (kbytes unlimitedstack size (kbytes 8192cpu time (seconds unlimitedmax user processes unlimited * this line.pipe size (512 bytes 8open f
22、iles 1024virtual memory (kbytes 2105343注意:你可能更傾向于在命令行鍵入 “ unlimit u ” 而不是把它加入到文件 “ /root/.bashrc” 中。 但為保險(xiǎn)起見(jiàn),建議還是把它加入文件“ /root/.bashrc”中。7. 增加系統(tǒng)打開(kāi)的文件數(shù)目編輯“ .bashrc ”文件(例如:vi /root/.bashrc并加入下面一行:ulimit -n 90000然后退出,重新登錄。為了驗(yàn)證,可以以 root 身份登錄,然后鍵入“ ulimit a ” ,在打開(kāi)文件 數(shù)一項(xiàng)中應(yīng)該顯示“ 90000” ,例如:rootdeep# ulimit -
23、acore file size (blocks 1000000data seg size (kbytes unlimitedfile size (blocks unlimitedmax memory size (kbytes unlimitedstack size (kbytes 8192cpu time (seconds unlimitedmax user processes unlimitedpipe size (512 bytes 8open files 90000 * this line.virtual memory (kbytes 2105343注意:在早于 2.2版內(nèi)核的系統(tǒng)中,即
24、使進(jìn)行了上述修改,每個(gè)進(jìn)程所能打開(kāi)的文件數(shù)目仍然 限制為 1024。8. 文件“ atime ”屬性Linux 除了記錄文件的創(chuàng)建和修改時(shí)間外,還記錄文件最近的訪問(wèn)時(shí)間。該信息作用不大,但 為保留它, 系統(tǒng)需要消耗相應(yīng)的資源。 ext2文件系統(tǒng)允許超級(jí)用戶對(duì)單個(gè)文件進(jìn)行標(biāo)記, 以忽 略對(duì)這條信息的記錄。這種優(yōu)化調(diào)整, 對(duì)于文件查找操作, 系統(tǒng)性能提高顯著, 另外, 對(duì)于需要經(jīng)常訪問(wèn)的文件 (如: /var/spool/news也是很有用的。設(shè)置該屬性的命令為:rootdeep# chattr +A filename若需要對(duì)某個(gè)目錄下的所有文件進(jìn)行這種設(shè)置,可以使用:rootdeep /root
25、# chattr -R +A /var/spool/rootdeep /root# chattr -R +A /cache/rootdeep /root# chattr -R +A /home/httpd/ona/9. 文件的“ noatime ”屬性Linux 在 mount 文件系統(tǒng)時(shí),可以使用“ noatime ”選項(xiàng)。并可以在文件“ /etc/fstab”的 mount 選項(xiàng)區(qū)域中加入。當(dāng)含有該選項(xiàng)的文件系統(tǒng)被掛入(mount 系統(tǒng)時(shí),對(duì)該文件系統(tǒng)中的文件的讀訪問(wèn),不再更新文件的 atime 信息。一般情況下, atime 信息沒(méi)有用,所以不更新該域并無(wú)大礙。這一選項(xiàng)的重要性在于:當(dāng)只
26、對(duì)文件進(jìn)行讀操作時(shí), 不再需要向文件系統(tǒng)中該文件的相應(yīng)區(qū)域?qū)懭胄畔ⅰ?因?yàn)閷?xiě)入操作 的開(kāi)銷某種意義下是昂貴的,因此該選項(xiàng)可以獲得明顯的性能的改善。該選項(xiàng)對(duì)于文件的 wtime 屬性沒(méi)有影響,每次文件寫(xiě)操作時(shí),都會(huì)更新文件的 wtime 信息。編輯“ fstab ”文件(vi /etc/fstab并且加入如下一行(舉例說(shuō)明 :E.I: /dev/sda7 /chroot ext2 defaults,noatime 1 2重新啟動(dòng)系統(tǒng) , 然后用以下命令測(cè)試結(jié)果: rootdeep # reboot rootdeep # cat /proc/mounts10. 特定的 TCP/IP棧RedHat Linux , 一般情況下,并不優(yōu)化 TCP/IP 窗口大小。這能使系統(tǒng)性能的差別很大。如需 更多的信息, 參閱:RFC 1106 - High Latency WAN links - Section 4.1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)場(chǎng)設(shè)施叉車吊裝運(yùn)輸安全協(xié)議范本
- 四害防治服務(wù)合同范本及注意事項(xiàng)
- 可視化健康監(jiān)測(cè)膠囊行業(yè)分析
- 超導(dǎo)透明材料技術(shù)未來(lái)展望
- 2025至2030中國(guó)塑料薄膜行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 2025至2030中國(guó)眾籌行業(yè)市場(chǎng)發(fā)展分析及典型案例及有效策略與實(shí)施路徑評(píng)估報(bào)告
- 科研機(jī)構(gòu)技術(shù)人員培訓(xùn)計(jì)劃
- 2025至2030中國(guó)自行車胎和輪胎行業(yè)市場(chǎng)深度研究及發(fā)展前景投資可行性分析報(bào)告
- 心理學(xué)教學(xué)改革心得體會(huì)
- 2025至2030中國(guó)自動(dòng)閘門操作員行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2024-2025學(xué)年人教版PEP六年級(jí)下學(xué)期期末試卷(含答案含聽(tīng)力原文無(wú)音頻)
- 2025-2030年中國(guó)聚脲涂料行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 一級(jí)建造師考試安全管理試題及答案
- 《成人糖尿病患者的高血糖危象:共識(shí)報(bào)告》-學(xué)習(xí)與應(yīng)用
- 鍍鋅板知識(shí)課件
- 2025-2030偏光成像相機(jī)行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 腦卒中急救培訓(xùn)課件
- 豬場(chǎng)退股協(xié)議書(shū)范本
- 2025海南保亭農(nóng)水投資有限公司招聘22人筆試參考題庫(kù)附帶答案詳解
- 靜密封管理制度
- AI人工智能在金融領(lǐng)域的應(yīng)用案例
評(píng)論
0/150
提交評(píng)論