Hello
Ndinaganiza zogawana zomwe ndapeza - chipatso cha malingaliro, kuyesa ndi zolakwika.
Mwambiri: izi sizopezeka, ndithudi - zonsezi ziyenera kudziwika kwa nthawi yaitali, kwa iwo omwe akugwira nawo ntchito zowerengera zowerengera ndi kukhathamiritsa kwa machitidwe aliwonse, osati makamaka DBMS.
Ndipo: inde, akudziwa, amalemba zolemba zosangalatsa pa kafukufuku wawo,
Kumbali inayi: offhand sindikuwona kutchulidwa kulikonse kapena kufalitsa njira iyi pa intaneti pakati pa akatswiri a IT, DBA.
Kotero, mpaka.
Tiyeni tiyerekeze kuti tili ndi ntchito: kukhazikitsa dongosolo linalake la utumiki kuti litumikire mtundu wina wa ntchito.
Zimadziwika za ntchitoyi: zomwe zili, momwe ntchitoyo imayesedwera, komanso momwe mungayesere khalidweli.
Tiyerekezenso kuti ndizodziwika bwino komanso zosadziwika bwino: ndendende momwe ntchito imagwirira ntchito (kapena ndi) dongosolo lino lautumiki.
"Zochuluka kapena zochepa" - izi zikutanthauza kuti ndizotheka kukonzekera (kapena kuzipeza kuchokera kwinakwake) chida china, zofunikira, ntchito zomwe zitha kupangidwa ndikugwiritsidwa ntchito pamakina ndi mayeso oyeserera mokwanira kuti azitha kupanga, m'mikhalidwe yokwanira yogwira ntchito yopanga.
Chabwino, tiyeni tiyerekeze kuti magawo osinthika a dongosolo lino lautumiki amadziwika, omwe angagwiritsidwe ntchito kukonza dongosololi ponena za zokolola za ntchito yake.
Ndipo vuto ndi chiyani - palibe kumvetsetsa kokwanira kwa dongosolo lino lautumiki, lomwe limakupatsani mwayi wokonza mwaluso zoikamo za dongosolo lino kuti muthe kunyamula m'tsogolo pa nsanja yopatsidwa ndikupeza zokolola zofunikira za dongosolo.
Chabwino. Izi zimakhala choncho nthawi zonse.
Mungatani pano?
Chabwino, chinthu choyamba chimene chimabwera m'maganizo ndikuyang'ana zolemba za dongosolo lino. Mvetsetsani kuti milingo yovomerezeka ndi yotani pamagawo osintha. Ndipo, mwachitsanzo, pogwiritsa ntchito njira yolumikizirana, sankhani zofunikira zamagawo a dongosolo pamayeso.
Iwo. perekani dongosolo la mtundu wina wa kasinthidwe, mu mawonekedwe azinthu zinazake zamasinthidwe ake.
Ikani zoyeserera kwa izo, pogwiritsa ntchito chida ichi, chonyamula katundu.
Ndipo yang'anani pa mtengo - kuyankha, kapena metric ya khalidwe la dongosolo.
Lingaliro lachiwiri lingakhale lingaliro lakuti iyi ndi nthawi yayitali kwambiri.
Chabwino, ndiye kuti: ngati pali magawo ambiri osinthika, ngati milingo yazikhalidwe zawo ndi zazikulu, ngati mayeso amtundu uliwonse amatenga nthawi yayitali kuti amalize, ndiye: inde, zonsezi zitha kutenga nthawi yayitali yosavomerezeka. nthawi.
Chabwino, apa pali zomwe mungamvetse ndikukumbukira.
Mutha kudziwa kuti pamagawo azinthu zamagawo amtundu wautumiki pali vekitala, monga mndandanda wazinthu zina.
Chilichonse choterechi, zinthu zina kukhala zofanana (pomwe sizimakhudzidwa ndi vekitala iyi), zimafanana ndi mtengo wotsimikizika wa metric - chizindikiro cha momwe machitidwe amagwirira ntchito poyesedwa.
I
Tiyeni tiwone vesi la kasinthidwe kachitidwe ngati kumene ; Kuti - chiwerengero cha magawo osinthika, ndi angati mwa magawo awa.
Ndipo mtengo wa metric wolingana ndi izi tiyeni tifotokoze ngati
, ndiye timapeza ntchito:
Chabwino, ndiye: zonse nthawi yomweyo zimatsikira, kwa ine: pafupifupi kuyiwalika kuyambira masiku anga ophunzira, ma aligorivimu posaka ntchito mopitilira muyeso.
Chabwino, koma apa pali funso labungwe ndi logwiritsidwa ntchito: ndi algorithm iti yomwe mungagwiritse ntchito.
- M'lingaliro - kotero kuti mukhoza kulemba zochepa ndi dzanja.
- Ndipo kuti igwire ntchito, i.e. adapeza chowonjezera (ngati chilipo), chabwino, mwachangu kuposa momwe amakhalira.
Mfundo yoyamba ikuwonetsa kuti tiyenera kuyang'ana kumadera ena momwe ma algorithms oterowo akhazikitsidwa kale, ndipo, mwanjira ina, ali okonzeka kugwiritsidwa ntchito mu code.
Chabwino, ndikudziwa python
и cran-r
Mfundo yachiwiri ikutanthauza kuti muyenera kuwerenga za ma aligorivimu okha, zomwe zili, zomwe zimafunikira, komanso mawonekedwe a ntchito yawo.
Ndipo zomwe amapereka zingakhale zothandiza - zotsatira, kapena mwachindunji kuchokera ku algorithm yokha.
Kapena atha kupezeka kuchokera ku zotsatira za algorithm.
Zambiri zimatengera momwe zinthu ziliri.
Mwachitsanzo, ngati, pazifukwa zina, muyenera kupeza zotsatira mwachangu, muyenera kuyang'ana ma aligorivimu a gradient ndikusankha imodzi mwazo.
Kapena, ngati nthawi siili yofunika kwambiri, mutha kugwiritsa ntchito njira zowonjezera stochastic, monga ma genetic algorithm.
Ndikupangira kuganizira ntchito ya njirayi, kusankha kasinthidwe kachitidwe, pogwiritsa ntchito ma genetic algorithm, motsatira, titero: ntchito ya labotale.
Choyambirira:
- Pakhale, monga dongosolo la utumiki:
oracle xe 18c
- Lolani kuti igwiritse ntchito zochitika ndi cholinga: kupeza njira yopititsira patsogolo kwambiri ya subdatabase, muzochita/mphindikati.
- Zochita zimatha kukhala zosiyana kwambiri ndi momwe zimagwirira ntchito ndi deta komanso momwe ntchito ikugwirira ntchito.
Tiyeni tivomereze kuti izi ndizochitika zomwe sizimakonza zambiri zama tabular.
M'lingaliro lakuti samapanga zambiri zosintha kuposa kubwerezanso ndipo samakonza mizere yambiri ndi matebulo akuluakulu.
Izi ndizochitika zomwe zimasintha mzere umodzi patebulo lalikulu kapena locheperapo, ndi ma index ochepa patebuloli.
M'menemo: zokolola za subdatabase yosinthira zochitika, ndikusungitsa, zidzatsimikiziridwa ndi mtundu wa kukonzedwa ndi nkhokwe ya redox.
Chodzikanira - ngati tilankhula mwachindunji za makonda a subdb.
Chifukwa, nthawi zambiri, pakhoza kukhala, mwachitsanzo, zotsekera zotsekera pakati pa magawo a SQL, chifukwa cha mapangidwe a ntchito yogwiritsira ntchito ndi deta ya tabular ndi / kapena chitsanzo cha tabular.
Zomwe, ndithudi, zidzakhala ndi zotsatira zofooketsa pazitsulo za TPS ndipo izi zidzakhala chinthu chachilendo, chokhudzana ndi subdatabase: chabwino, umu ndi momwe chitsanzo cha tabular chinapangidwira ndi ntchito ndi deta mmenemo kuti blockages zimachitika.
Choncho, chifukwa cha chiyero cha kuyesa, sitidzapatula chinthu ichi, ndipo pansipa ndikufotokozerani momwe mungachitire.
- Tiyeni tiyerekeze, motsimikizika, kuti 100% ya malamulo a SQL omwe atumizidwa ku database ndi malamulo a DML.
Lolani kuti mawonekedwe a ogwiritsa ntchito ndi subdatabase akhale ofanana pamayesero.
Izi: kuchuluka kwa magawo a skl, ma tabular data, momwe magawo a skl amagwirira ntchito nawo. - Subd imagwira ntchito mkati
FORCE LOGGING
,ARCHIVELOG
mods. Flashback-database mode yazimitsidwa, pamlingo wa subd. - Bwezeraninso zipika: zomwe zili mu fayilo yosiyana, pa "disk" yosiyana;
Zina zonse za nkhokwe: mumtundu wina, wosiyana wa fayilo, pa "disk" yosiyana:
Zambiri za chipangizo chakuthupi. zigawo za database za labotale
SQL> select status||' '||name from v$controlfile;
/db/u14/oradata/XE/control01.ctl
SQL> select GROUP#||' '||MEMBER from v$logfile;
1 /db/u02/oradata/XE/redo01_01.log
2 /db/u02/oradata/XE/redo02_01.log
SQL> select FILE_ID||' '||TABLESPACE_NAME||' '||round(BYTES/1024/1024,2)||' '||FILE_NAME as col from dba_data_files;
4 UNDOTBS1 2208 /db/u14/oradata/XE/undotbs1_01.dbf
2 SLOB 128 /db/u14/oradata/XE/slob01.dbf
7 USERS 5 /db/u14/oradata/XE/users01.dbf
1 SYSTEM 860 /db/u14/oradata/XE/system01.dbf
3 SYSAUX 550 /db/u14/oradata/XE/sysaux01.dbf
5 MONITOR 128 /db/u14/oradata/XE/monitor.dbf
SQL> !cat /proc/mounts | egrep "/db/u[0-2]"
/dev/vda1 /db/u14 ext4 rw,noatime,nodiratime,data=ordered 0 0
/dev/mapper/vgsys-ora_redo /db/u02 xfs rw,noatime,nodiratime,attr2,nobarrier,inode64,logbsize=256k,noquota 0 0
Poyambirira, pansi pazitundu izi, ndimafuna kugwiritsa ntchito transaction subd
Ili ndi mawonekedwe odabwitsa, nditchula wolemba:
Pamtima pa SLOB pali "njira ya SLOB." Njira ya SLOB ikufuna kuyesa nsanja
popanda kukangana ndi ntchito. Munthu sangathe kuyendetsa magwiridwe antchito apamwamba a hardware
pogwiritsa ntchito nambala yogwiritsira ntchito, mwachitsanzo, yomangidwa ndi kutseka kwa pulogalamu kapena ngakhale
kugawana midadada ya Oracle Database. Ndiko kulondola - pali zambiri pakugawana deta
mu data blocks! Koma SLOB-pakutumiza kwake kosasintha-sikhala ndi mikangano yotere.
Chilengezo ichi: chikufanana, chiri.
Ndikoyenera kuwongolera kuchuluka kwa kufanana kwa magawo amagulu, ichi ndiye chinsinsi -t
kuyambitsa ntchito runit.sh
kuchokera ku SLOB
Peresenti ya malamulo a DML imayendetsedwa, mu chiwerengero cha mauthenga omwe amatumizidwa ku subd, gawo lililonse la malemba, parameter. UPDATE_PCT
Payokha komanso mosavuta kwambiri: SLOB
palokha, isanayambe ndi itatha gawo la katundu - amakonzekera statspack, kapena awr-snapshots (zomwe zakonzedwa kuti zikonzekere).
Komabe, zinapezeka kuti SLOB
sichithandizira magawo a SQL ndi nthawi yochepera masekondi 30.
Chifukwa chake, ndidalemba kaye mtundu wanga, wapantchito-wamphawi, kenako idakhala ikugwira ntchito.
Ndiroleni ine ndifotokoze zomwe loader imachita ndi momwe imachitira izo, kuti zimveke.
Kwenikweni, Loader ikuwoneka motere:
Kodi ntchito
function dotx()
{
local v_period="$2"
[ -z "v_period" ] && v_period="0"
source "/home/oracle/testingredotracе/config.conf"
$ORACLE_HOME/bin/sqlplus -S system/${v_system_pwd} << __EOF__
whenever sqlerror exit failure
set verify off
set echo off
set feedback off
define wnum="$1"
define period="$v_period"
set appinfo worker_&&wnum
declare
v_upto number;
v_key number;
v_tots number;
v_cts number;
begin
select max(col1) into v_upto from system.testtab_&&wnum;
SELECT (( SYSDATE - DATE '1970-01-01' ) * 86400 ) into v_cts FROM DUAL;
v_tots := &&period + v_cts;
while v_cts <= v_tots
loop
v_key:=abs(mod(dbms_random.random,v_upto));
if v_key=0 then
v_key:=1;
end if;
update system.testtab_&&wnum t
set t.object_name=translate(dbms_random.string('a', 120), 'abcXYZ', '158249')
where t.col1=v_key
;
commit;
SELECT (( SYSDATE - DATE '1970-01-01' ) * 86400 ) into v_cts FROM DUAL;
end loop;
end;
/
exit
__EOF__
}
export -f dotx
Ogwira ntchito amapangidwa motere:
Ogwira ntchito
echo "starting test, duration: ${TEST_DURATION}" >> "$v_logfile"
for((i=1;i<="$SQLSESS_COUNT";i++))
do
echo "sql-session: ${i}" >> "$v_logfile"
dotx "$i" "${TEST_DURATION}" &
done
echo "waiting..." >> "$v_logfile"
wait
Ndipo matebulo a antchito amakonzedwa motere:
Kupanga matebulo
function createtable() {
source "/home/oracle/testingredotracе/config.conf"
$ORACLE_HOME/bin/sqlplus -S system/${v_system_pwd} << __EOF__
whenever sqlerror continue
set verify off
set echo off
set feedback off
define wnum="$1"
define ts_name="slob"
begin
execute immediate 'drop table system.testtab_&&wnum';
exception when others then null;
end;
/
create table system.testtab_&&wnum tablespace &&ts_name as
select rownum as col1, t.*
from sys.dba_objects t
where rownum<1000
;
create index testtab_&&wnum._idx on system.testtab_&&wnum (col1);
--alter table system.testtab_&&wnum nologging;
--alter index system.testtab_&&wnum._idx nologging;
exit
__EOF__
}
export -f createtable
seq 1 1 "$SQLSESS_COUNT" | xargs -n 1 -P 4 -I {} -t bash -c "createtable "{}"" | tee -a "$v_logfile"
echo "createtable done" >> "$v_logfile"
Iwo. Kwa wogwira ntchito aliyense (mwachidziwikire: gawo lapadera la SQL mu DB) tebulo lapadera limapangidwa, lomwe wogwira ntchitoyo amagwira nalo.
Izi zimatsimikizira kusakhalapo kwa maloko ochita malonda pakati pa magawo ogwira ntchito.
Wogwira ntchito aliyense: amachita zomwezo, ndi tebulo lake, matebulo ali ofanana.
Ogwira ntchito onse amagwira ntchito nthawi yofanana.
Komanso, kwa nthawi yayitali yokwanira kuti, mwachitsanzo, kusintha kwa chipika kudzachitikadi, komanso kangapo.
Chifukwa chake, ndalama zofananira ndi zotsatira zidawuka.
Kwa ine, ndinakonza nthawi ya ntchito ya ogwira ntchito mphindi 8.
Chigawo cha lipoti la statspack lofotokoza ntchito ya subd pansi pa katundu
Database DB Id Instance Inst Num Startup Time Release RAC
~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---
2929910313 XE 1 07-Sep-20 23:12 18.0.0.0.0 NO
Host Name Platform CPUs Cores Sockets Memory (G)
~~~~ ---------------- ---------------------- ----- ----- ------- ------------
billing.izhevsk1 Linux x86 64-bit 2 2 1 15.6
Snapshot Snap Id Snap Time Sessions Curs/Sess Comment
~~~~~~~~ ---------- ------------------ -------- --------- ------------------
Begin Snap: 1630 07-Sep-20 23:12:27 55 .7
End Snap: 1631 07-Sep-20 23:20:29 62 .6
Elapsed: 8.03 (mins) Av Act Sess: 8.4
DB time: 67.31 (mins) DB CPU: 15.01 (mins)
Cache Sizes Begin End
~~~~~~~~~~~ ---------- ----------
Buffer Cache: 1,392M Std Block Size: 8K
Shared Pool: 288M Log Buffer: 103,424K
Load Profile Per Second Per Transaction Per Exec Per Call
~~~~~~~~~~~~ ------------------ ----------------- ----------- -----------
DB time(s): 8.4 0.0 0.00 0.20
DB CPU(s): 1.9 0.0 0.00 0.04
Redo size: 7,685,765.6 978.4
Logical reads: 60,447.0 7.7
Block changes: 47,167.3 6.0
Physical reads: 8.3 0.0
Physical writes: 253.4 0.0
User calls: 42.6 0.0
Parses: 23.2 0.0
Hard parses: 1.2 0.0
W/A MB processed: 1.0 0.0
Logons: 0.5 0.0
Executes: 15,756.5 2.0
Rollbacks: 0.0 0.0
Transactions: 7,855.1
Kubwerera kuntchito ya labotale.
Tidzati, zinthu zina kukhala zofanana, tidzasintha mfundo za magawo otsatirawa a labotale subdatabase:
- Kukula kwa magulu a logi a database. mtengo wamtengo wapatali: [32, 1024] MB;
- Chiwerengero cha magulu a magazini mu nkhokwe. mtengo wamtengo wapatali: [2,32];
log_archive_max_processes
mtengo wamtengo wapatali: [1,8];commit_logging
makhalidwe awiri amaloledwa:batch|immediate
;commit_wait
makhalidwe awiri amaloledwa:wait|nowait
;log_buffer
kuchuluka kwa mtengo: [2,128] MB.log_checkpoint_timeout
mtengo osiyanasiyana: [60,1200] masekondidb_writer_processes
mtengo: [1,4]undo_retention
mtengo osiyanasiyana: [30;300] masekonditransactions_per_rollback_segment
mtengo: [1,8]disk_asynch_io
makhalidwe awiri amaloledwa:true|false
;filesystemio_options
zotsatirazi ndizololedwa:none|setall|directIO|asynch
;db_block_checking
zotsatirazi ndizololedwa:OFF|LOW|MEDIUM|FULL
;db_block_checksum
zotsatirazi ndizololedwa:OFF|TYPICAL|FULL
;
Munthu wodziwa kusunga nkhokwe za Oracle akhoza kunena kale zomwe ziyenera kukhazikitsidwa, kuchokera pazigawo zomwe zatchulidwa ndi zovomerezeka zawo, kuti apeze zokolola zambiri za nkhokwe ya ntchitoyo ndi deta yomwe ikuwonetsedwa ndi nambala yofunsira, apa pamwambapa.
Koma.
Mfundo ya ntchito ya labotale ndikuwonetsa kuti kukhathamiritsa kwa algorithm palokha kudzatifotokozera izi mwachangu.
Kwa ife, zomwe zatsala ndikungoyang'ana mu chikalatacho, kudzera mudongosolo losinthika, zokwanira kuti tipeze magawo oti asinthe komanso magawo ati.
Komanso: sungani code yomwe idzagwiritsidwe ntchito kuti igwire ntchito ndi machitidwe osankhidwa a algorithm yosankhidwa.
Kotero, tsopano za code.
Ndinayankhula pamwambapa cran-r
, i.e.: zosintha zonse zokhala ndi makonda amapangidwa mwa mawonekedwe a R script.
Ntchito yeniyeni, kusanthula, kusankhidwa ndi mtengo wa metric, ma vector a boma: iyi ndi phukusi GA
(
Phukusili, pakadali pano, silili loyenera kwambiri, chifukwa limayembekezera ma vectors (ma chromosome, ngati malinga ndi phukusi) kuti afotokozedwe mu mawonekedwe a zingwe za manambala okhala ndi gawo laling'ono.
Ndipo vekitala yanga, kuchokera pamiyezo yoyika magawo: izi ndi kuchuluka kwa 14 - ziwerengero ndi zingwe.
Vuto, ndithudi, limapeŵedwa mosavuta mwa kugawa manambala enaake ku zingwe.
Chifukwa chake, pamapeto pake, gawo lalikulu la R script likuwoneka motere:
Itanani GA::ga
cat( "", file=v_logfile, sep="n", append=F)
pSize = 10
elitism_value=1
pmutation_coef=0.8
pcrossover_coef=0.1
iterations=50
gam=GA::ga(type="real-valued", fitness=evaluate,
lower=c(32,2, 1,1,1,2,60,1,30,1,0,0, 0,0), upper=c(1024,32, 8,10,10,128,800,4,300,8,10,40, 40,30),
popSize=pSize,
pcrossover = pcrossover_coef,
pmutation = pmutation_coef,
maxiter=iterations,
run=4,
keepBest=T)
cat( "GA-session is done" , file=v_logfile, sep="n", append=T)
gam@solution
Apa, ndi chithandizo lower
и upper
subroutine makhalidwe ga
kwenikweni, gawo la malo osaka limatchulidwa, momwe kusaka kudzachitikira vekitala yotere (kapena ma vectors) omwe mtengo wokwanira wolimbitsa thupi udzapezedwa.
The ga subroutine imachita kusaka kukulitsa kulimbitsa thupi.
Chabwino, ndiye, zikuwonekeratu kuti, pankhaniyi, ndikofunikira kuti ntchito yolimbitsa thupi, kumvetsetsa vekitala ngati seti yazigawo zina za subd, ilandila metric kuchokera ku subd.
Ndiko kuti: angati, omwe ali ndi kukhazikitsidwa kwa subd ndi katundu wopatsidwa pa subd: subd process transactions pamphindikati.
Ndiye kuti, povumbulutsidwa, masitepe angapo otsatirawa ayenera kuchitidwa mkati mwazolimbitsa thupi:
- Kukonza vekitala yolowera manambala - kuyisintha kukhala miyeso ya magawo a subdata.
- Kuyesera kupanga chiwerengero chopatsidwa cha magulu obwereza a kukula kwake. Komanso, kuyesako sikungaphule kanthu.
Magulu a magazini omwe analipo kale mu subd, mu kuchuluka kwina ndi kukula kwina, kuti ayese chiyero - d.b. zachotsedwa. - Ngati mfundo yam'mbuyomu yapambana: kufotokozera zosintha zamasinthidwe ku database (kachiwiri: pangakhale kulephera)
- Ngati gawo lapitalo likuyenda bwino: kuyimitsa subd, kuyambitsa subd kuti zomwe zangotchulidwa kumene zichitike. (kachiwiri: pakhoza kukhala glitch)
- Ngati sitepe yapitayi yapambana: chitani mayeso olemetsa. pezani ma metric kuchokera ku subd.
- Bweretsani subd ku chikhalidwe chake choyambirira, i.e. chotsani magulu olembera owonjezera, bweretsani zosinthika zoyambirira za subdatabase kuti zigwire ntchito.
Fitness function code
evaluate=function(p_par) {
v_module="evaluate"
v_metric=0
opn=NULL
opn$rg_size=round(p_par[1],digit=0)
opn$rg_count=round(p_par[2],digit=0)
opn$log_archive_max_processes=round(p_par[3],digit=0)
opn$commit_logging="BATCH"
if ( round(p_par[4],digit=0) > 5 ) {
opn$commit_logging="IMMEDIATE"
}
opn$commit_logging=paste("'", opn$commit_logging, "'",sep="")
opn$commit_wait="WAIT"
if ( round(p_par[5],digit=0) > 5 ) {
opn$commit_wait="NOWAIT"
}
opn$commit_wait=paste("'", opn$commit_wait, "'",sep="")
opn$log_buffer=paste(round(p_par[6],digit=0),"m",sep="")
opn$log_checkpoint_timeout=round(p_par[7],digit=0)
opn$db_writer_processes=round(p_par[8],digit=0)
opn$undo_retention=round(p_par[9],digit=0)
opn$transactions_per_rollback_segment=round(p_par[10],digit=0)
opn$disk_asynch_io="true"
if ( round(p_par[11],digit=0) > 5 ) {
opn$disk_asynch_io="false"
}
opn$filesystemio_options="none"
if ( round(p_par[12],digit=0) > 10 && round(p_par[12],digit=0) <= 20 ) {
opn$filesystemio_options="setall"
}
if ( round(p_par[12],digit=0) > 20 && round(p_par[12],digit=0) <= 30 ) {
opn$filesystemio_options="directIO"
}
if ( round(p_par[12],digit=0) > 30 ) {
opn$filesystemio_options="asynch"
}
opn$db_block_checking="OFF"
if ( round(p_par[13],digit=0) > 10 && round(p_par[13],digit=0) <= 20 ) {
opn$db_block_checking="LOW"
}
if ( round(p_par[13],digit=0) > 20 && round(p_par[13],digit=0) <= 30 ) {
opn$db_block_checking="MEDIUM"
}
if ( round(p_par[13],digit=0) > 30 ) {
opn$db_block_checking="FULL"
}
opn$db_block_checksum="OFF"
if ( round(p_par[14],digit=0) > 10 && round(p_par[14],digit=0) <= 20 ) {
opn$db_block_checksum="TYPICAL"
}
if ( round(p_par[14],digit=0) > 20 ) {
opn$db_block_checksum="FULL"
}
v_vector=paste(round(p_par[1],digit=0),round(p_par[2],digit=0),round(p_par[3],digit=0),round(p_par[4],digit=0),round(p_par[5],digit=0),round(p_par[6],digit=0),round(p_par[7],digit=0),round(p_par[8],digit=0),round(p_par[9],digit=0),round(p_par[10],digit=0),round(p_par[11],digit=0),round(p_par[12],digit=0),round(p_par[13],digit=0),round(p_par[14],digit=0),sep=";")
cat( paste(v_module," try to evaluate vector: ", v_vector,sep="") , file=v_logfile, sep="n", append=T)
rc=make_additional_rgroups(opn)
if ( rc!=0 ) {
cat( paste(v_module,"make_additional_rgroups failed",sep="") , file=v_logfile, sep="n", append=T)
return (0)
}
v_rc=0
rc=set_db_parameter("log_archive_max_processes", opn$log_archive_max_processes)
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("commit_logging", opn$commit_logging )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("commit_wait", opn$commit_wait )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("log_buffer", opn$log_buffer )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("log_checkpoint_timeout", opn$log_checkpoint_timeout )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("db_writer_processes", opn$db_writer_processes )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("undo_retention", opn$undo_retention )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("transactions_per_rollback_segment", opn$transactions_per_rollback_segment )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("disk_asynch_io", opn$disk_asynch_io )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("filesystemio_options", opn$filesystemio_options )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("db_block_checking", opn$db_block_checking )
if ( rc != 0 ) { v_rc=1 }
rc=set_db_parameter("db_block_checksum", opn$db_block_checksum )
if ( rc != 0 ) { v_rc=1 }
if ( rc!=0 ) {
cat( paste(v_module," can not startup db with that vector of settings",sep="") , file=v_logfile, sep="n", append=T)
rc=stop_db("immediate")
rc=create_spfile()
rc=start_db("")
rc=remove_additional_rgroups(opn)
return (0)
}
rc=stop_db("immediate")
rc=start_db("")
if ( rc!=0 ) {
cat( paste(v_module," can not startup db with that vector of settings",sep="") , file=v_logfile, sep="n", append=T)
rc=stop_db("abort")
rc=create_spfile()
rc=start_db("")
rc=remove_additional_rgroups(opn)
return (0)
}
rc=run_test()
v_metric=getmetric()
rc=stop_db("immediate")
rc=create_spfile()
rc=start_db("")
rc=remove_additional_rgroups(opn)
cat( paste("result: ",v_metric," ",v_vector,sep="") , file=v_logfile, sep="n", append=T)
return (v_metric)
}
Kuti. ntchito zonse: zochitidwa muzolimbitsa thupi.
Ga-subroutine imayendetsa ma vectors, kapena, molondola, ma chromosome.
Momwe, chomwe chili chofunikira kwambiri kwa ife ndikusankha ma chromosome okhala ndi majini omwe ntchito yolimbitsa thupi imapanga zinthu zazikulu.
Izi, kwenikweni, ndi njira yosaka ma chromosome omwe ali oyenera kugwiritsa ntchito vekitala mu malo osakira a N-dimensional.
Zomveka bwino, zatsatanetsatane
Ndikufuna padera kuzindikira mfundo ziwiri zaukadaulo.
Mafoni othandizira kuchokera ku ntchitoyi evaluate
, mwachitsanzo, kuyimitsa-kuyambira, kuyika mtengo wa subd parameter, kumachitika potengera cran-r
ntchito system2
Ndi chithandizo chomwe: bash script kapena lamulo limatchedwa.
Mwachitsanzo:
set_db_parameter
set_db_parameter=function(p1, p2) {
v_module="set_db_parameter"
v_cmd="/home/oracle/testingredotracе/set_db_parameter.sh"
v_args=paste(p1," ",p2,sep="")
x=system2(v_cmd, args=v_args, stdout=T, stderr=T, wait=T)
if ( length(attributes(x)) > 0 ) {
cat(paste(v_module," failed with: ",attributes(x)$status," ",v_cmd," ",v_args,sep=""), file=v_logfile, sep="n", append=T)
return (attributes(x)$status)
}
else {
cat(paste(v_module," ok: ",v_cmd," ",v_args,sep=""), file=v_logfile, sep="n", append=T)
return (0)
}
}
Mfundo yachiwiri ndi mzere, evaluate
ntchito, ndikusunga mtengo wake wa metric ndi vekitala yofananira ndi fayilo ya chipika:
cat( paste("result: ",v_metric," ",v_vector,sep="") , file=v_logfile, sep="n", append=T)
Izi ndizofunikira, chifukwa kuchokera kuzinthu izi, zidzatheka kupeza zambiri zokhudzana ndi zigawo ziti za vector yokonza zomwe zimakhala ndi zotsatira zazikulu kapena zochepa pa mtengo wa metric.
Ndiko kuti: kudzakhala kotheka kusanthula kufunikira kofunikira.
Ndiye chingachitike n’chiyani?
Mu mawonekedwe a graph, ngati muyitanitsa mayesowo pokwera ma metric, chithunzichi chili motere:
Zina zomwe zimagwirizana ndi zotsika kwambiri za metric:
Apa, pazithunzi zokhala ndi zotsatira zake, ndikufotokozerani: mayendedwe a vekitala yosinthira amaperekedwa molingana ndi kachidindo kolimbitsa thupi, osati malinga ndi mndandanda wamagulu a magawo / magawo amitundu, omwe adapangidwa. pamwamba palemba.
Chabwino. Ndi zambiri kapena pang'ono, ~ 8 zikwi tps: funso losiyana.
Mkati mwa ndondomeko ya ntchito ya labotale, chiwerengerochi sichiri chofunikira, chofunika kwambiri ndi mphamvu, momwe mtengowu umasinthira.
Zosintha pano ndizabwino.
Ndizodziwikiratu kuti chinthu chimodzi chimakhudza kwambiri kufunikira kwa metric, ga-algorithm, kusanja kudzera mu ma chromosome vectors: ophimbidwa.
Kutengera kusinthasintha kwamphamvu kwa ma curve values, pali chinthu chinanso chomwe, ngakhale chocheperako, chimakhala ndi chikoka.
Apa ndipamene mukufunikira attribute-importance
kusanthula kuti mumvetsetse zomwe zili (chabwino, pamenepa, zigawo za vekitala yosinthira) ndi momwe zimakhudzira mtengo wa metric.
Ndipo kuchokera kuzidziwitso izi: mvetsetsani zomwe zidakhudzidwa ndi kusintha kwazinthu zofunikira.
Thamanga attribute-importance
zotheka m'njira zosiyanasiyana.
Pazifukwa izi, ndimakonda ma algorithm randomForest
R phukusi la dzina lomwelo (
randomForest
, monga momwe ndikumvetsetsa ntchito yake yonse komanso njira yake yowunika kufunikira kwa zikhumbo makamaka, imamanga chitsanzo china cha kudalira kusinthika kwa mayankho pazikhumbo.
M'malo athu, kusiyanasiyana kwamayankhidwe ndi metric yomwe imapezeka kuchokera ku database pamayeso olemetsa: tps
;
Ndipo mawonekedwe ndi zigawo za vector yosinthira.
Kotero apa randomForest
amawunika kufunikira kwa mtundu uliwonse wachitsanzo ndi manambala awiri: %IncMSE
- momwe kupezeka / kusakhalapo kwa chikhalidwe ichi mu chitsanzo kumasintha khalidwe la MSE la chitsanzo ichi (Mean Squared Error);
Ndipo IncNodePurity ndi nambala yomwe ikuwonetsa momwe, kutengera mikhalidwe ya chikhalidwe ichi, dataset yokhala ndi zowonera ingagawidwe, kotero kuti mu gawo limodzi pali deta yokhala ndi mtengo umodzi wa metric yomwe ikufotokozedwa, ndipo ina ndi mtengo wina wa metric.
Chabwino, ndiye kuti: ndi gawo lotani ili (ndinawona kulongosola komveka bwino kwa chilankhulo cha Chirasha pa RandomForest)
R-code ya anthu ogwira ntchito yokonza deta yokhala ndi zotsatira za mayeso a katundu:
x=NULL
v_data_file=paste('/tmp/data1.dat',sep="")
x=read.table(v_data_file, header = TRUE, sep = ";", dec=",", quote = ""'", stringsAsFactors=FALSE)
colnames(x)=c('metric','rgsize','rgcount','lamp','cmtl','cmtw','lgbffr','lct','dbwrp','undo_retention','tprs','disk_async_io','filesystemio_options','db_block_checking','db_block_checksum')
idxTrain=sample(nrow(x),as.integer(nrow(x)*0.7))
idxNotTrain=which(! 1:nrow(x) %in% idxTrain )
TrainDS=x[idxTrain,]
ValidateDS=x[idxNotTrain,]
library(randomForest)
#mtry=as.integer( sqrt(dim(x)[2]-1) )
rf=randomForest(metric ~ ., data=TrainDS, ntree=40, mtry=3, replace=T, nodesize=2, importance=T, do.trace=10, localImp=F)
ValidateDS$predicted=predict(rf, newdata=ValidateDS[,colnames(ValidateDS)!="metric"], type="response")
sum((ValidateDS$metric-ValidateDS$predicted)^2)
rf$importance
Mukhoza kusankha mwachindunji ma hyperparameters a algorithm ndi manja anu ndipo, poyang'ana khalidwe lachitsanzo, sankhani chitsanzo chomwe chimakwaniritsa zonenedweratu pa dataset yovomerezeka.
Mutha kulemba mtundu wina wa ntchito pa ntchitoyi (mwa njira, kachiwiri, pogwiritsa ntchito mtundu wina wa kukhathamiritsa kwa algorithm).
Mutha kugwiritsa ntchito phukusi la R caret
, osati mfundo yofunika.
Zotsatira zake, mu nkhaniyi, zotsatirazi zimapezedwa kuti ziwone kuchuluka kwa kufunikira kwa zikhumbozo:
Chabwino. Chifukwa chake, titha kuyambitsa kusinkhasinkha kwapadziko lonse lapansi:
- Zikuoneka kuti chofunika kwambiri, pansi pa miyeso iyi, chinali chizindikiro
commit_wait
Mwaukadaulo, imafotokoza momwe amagwirira ntchito io polemba redo data kuchokera ku subdb log buffer kupita ku gulu lamakono la log: synchronous or asynchronous.
mtengonowait
zomwe zimabweretsa pafupifupi vertical, kuwonjezeka kangapo kwa mtengo wa tps metric: uku ndiko kuphatikizidwa kwa asynchronous io mode m'magulu obwereza.
Funso losiyana ndiloti muyenera kuchita izi m'nkhokwe yazakudya kapena ayi. Apa ndimangonena kuti: ichi ndi chinthu chofunikira kwambiri. - Ndizomveka kuti kukula kwa log buffer ya subd: kumakhala chinthu chofunikira.
Zing'onozing'ono za buffer ya chipika, kuchepa kwa mphamvu yake, nthawi zambiri zimasefukira ndi / kapena kulephera kugawa malo aulere mmenemo kuti mutengere gawo la deta yatsopano ya redox.
Izi zikutanthauza: kuchedwa komwe kumayenderana ndi kugawa malo muzosungira za log ndi/kapena kutaya zomwe zachitikanso m'magulu obwereza.
Kuchedwetsaku, ndithudi, kuyenera kukhudza momwe nkhokwe ikuyendetsera zinthu. - chizindikiro
db_block_checksum
: chabwino, komanso, ndizodziwikiratu - kusinthana kumapangitsa kuti pakhale midadada yakuda mu cache ya buffer ya subdatabase.
Zomwe, poyang'ana ma checksums a datablocks zayatsidwa, nkhokwe iyenera kukonza - kuwerengera ma checksums kuchokera ku thupi la datablock, yang'anani ndi zomwe zalembedwa pamutu wa datablock: machesi / sagwirizana.
Ntchito yotereyi, siyingathenso kuchedwetsa kukonzanso kwa data, ndipo motero, gawo ndi makina omwe amayika chizindikirochi amakhala ofunika.
Ndicho chifukwa chake wogulitsa amapereka, muzolemba za parameter iyi, zosiyana zake (parameter) ndikuwona kuti inde, padzakhala zotsatira, koma, chabwino, mukhoza kusankha zosiyana, mpaka "kuchoka" ndi zotsatira zosiyanasiyana.
Chabwino, mapeto a dziko lonse.
Njirayi, kawirikawiri, imakhala yogwira ntchito.
Amadzilola yekha, m'magawo oyambirira a kuyesa katundu wa dongosolo linalake lautumiki, kuti asankhe kasinthidwe kake (kachitidwe) koyenera kwa katunduyo, kuti asafufuze mozama kwambiri za kukhazikitsa dongosolo la katunduyo.
Koma sizimapatula kwathunthu - osachepera pamlingo womvetsetsa: dongosololi liyenera kudziwika za "makona osinthika" ndi magawo ovomerezeka a kuzungulira kwa mitsuko iyi.
Njirayo imatha kupeza mwachangu kasinthidwe kabwino kachitidwe.
Ndipo kutengera zotsatira za kuyezetsa, ndizotheka kupeza zambiri zamtundu waubwenzi pakati pa ma metrics amachitidwe adongosolo ndi zoyambira zamagawo adongosolo.
Zomwe, ndithudi, ziyenera kuthandizira kuti pakhale chidziwitso chakuya kwambiri cha dongosolo, ntchito yake, osachepera pansi pa katundu wopatsidwa.
Pochita, uku ndikusinthanitsa kwa ndalama zomvetsetsa dongosolo lokhazikika pamitengo yokonzekera kuyesedwa kotere kwa dongosolo.
Ndikufuna kuzindikira padera: mwa njira iyi, kuchuluka kwa kuyezetsa kwadongosolo kumachitidwe ogwirira ntchito omwe adzakhale nawo pochita malonda ndikofunikira kwambiri.
Zikomo chifukwa cha chidwi chanu komanso nthawi yanu.
Source: www.habr.com