Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga

Hiha.

I whakatau ahau ki te whakapuaki i aku kitenga - te hua o te whakaaro, te whakamatautau me te he.
Ma te nui: ehara tenei i te mea i kitea - he mea mohio tenei katoa mo te wa roa, ki te hunga e whai waahi ana ki te tukatuka raraunga tatauranga me te arotautanga o nga punaha, ehara i te mea ko te DBMS.
A: ae, e mohio ana ratou, ka tuhia e ratou nga tuhinga whakamere mo a raatau rangahau, tauira (UPD.: i roto i nga korero i tohuhia e ratou tetahi kaupapa tino pai: ottertune )
I tetahi atu taha: kaore au e kite i te korero whanui, i te horahanga ranei o tenei huarahi i runga i te Ipurangi i waenga i nga tohunga IT, DBA.

Na, ki te waahi.

Me whakaaro he mahi ta tatou: ki te whakarite i tetahi punaha ratonga hei mahi i etahi momo mahi.

E mohiotia ana mo tenei mahi: he aha te mea, he pehea te ine i te kounga o tenei mahi, he aha te paearu mo te ine i tenei kounga.

Me whakaaro ano he iti ake ranei te mohio me te mohio: me pehea te mahi i roto i tenei punaha ratonga.

"Nui atu iti iho ranei" - ko te tikanga ka taea te whakarite (me te tiki mai ranei i tetahi waahi) tetahi taputapu, whaipainga, ratonga ka taea te whakakotahi me te tono ki te punaha me te utaina whakamatautau e tika ana mo nga mea ka mahia, newzealand.govt.nz -- hei honotanga ki ngā whakaratonga o te kāwanatanga o Aotearoa ā - pokapū & ā - takiwā .

Kaati, me whakaaro tatou kua mohiotia he huinga o nga tawhā whakatikatika mo tenei punaha ratonga, ka taea te whakamahi hei whirihora i tenei punaha i runga i te hua o ana mahi.

He aha te raru - kaore he tino mohio ki tenei punaha ratonga, ka taea e koe te whirihora i nga tautuhinga o tenei punaha mo te kawenga a meake nei i runga i tetahi papaanga ka whiwhi i nga hua e hiahiatia ana o te punaha.

Kaati. Ko te ahua tonu tenei.

Ka aha koe i konei?

Kaati, ko te mea tuatahi ka puta ki te hinengaro ko te titiro ki nga tuhinga mo tenei punaha. Kia mohio he aha nga awhe e whakaaetia ana mo nga uara o nga tawhā whakatikatika. Na, hei tauira, ma te whakamahi i te tikanga whakaheke, tohua nga uara mo nga tawhā punaha i roto i nga whakamatautau.

Ko era. hoatu ki te punaha etahi momo whirihoranga, i te ahua o te huinga uara motuhake mo ona tawhā whirihoranga.

Hoatu he kawenga whakamatautau ki a ia, ma te whakamahi i tenei taputapu-taputapu, kaiwhakaputa kawenga.
A ka titiro ki te uara - te whakautu, te ine ranei o te kounga o te punaha.

Ko te whakaaro tuarua pea ko te whakatau he wa roa rawa tenei.

Ana, ara: mena he maha nga tawhā whakakoi, mena he nui nga awhe o o raatau uara e kapi ana, mena he roa te wa e whakaotia ai e ia whakamatautau kawenga, na: ae, ka pau pea he moni kaore e whakaaetia. o te wa.

Ana, koinei nga mea ka taea e koe te mohio me te mahara.

Ka kitea e koe kei roto i te huinga o nga uara o nga tawhā tautuhinga punaha ratonga he vector, hei raupapa o etahi uara.

Ko ia vector, he rite etahi atu mea (i te mea karekau e pa ki tenei vector), e rite ana ki te uara ineine tino - he tohu mo te kounga o te mahi punaha i raro i te kawenga whakamatautau.

ie

Me tohu tatou i te vector whirihoranga pūnaha hei Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautangate wahi Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga; Kei hea Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga — te maha o nga tawhā whirihoranga punaha, e hia o enei tawhā kei reira.

Me te uara o te ine e rite ana ki tenei Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga kia tohu tatou i te reira rite
Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga, ka whiwhi tatou i tetahi mahi: Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga

Na, ka tae tonu mai nga mea katoa, i taku keehi: kua warewarehia mai i aku ra akonga, nga algorithms mo te rapu i te tino nui o tetahi mahi.

Kati, engari i konei ka ara ake he patai whakahaere me te tono: ko tehea algorithm hei whakamahi.

  1. I roto i te tikanga - kia taea e koe te tohu iti ma te ringaringa.
  2. A mo te mahi, i.e. i kitea te pito (mehemea he kotahi), pai, he tere ake i te hekenga taurite.

Ko te tohu tuatahi me titiro tatou ki etahi taiao kua oti kee te whakatinana i aua momo hātepe, a, i etahi ahuatanga, kua rite mo te whakamahi i roto i te waehere.
Ana, e mohio ana ahau python и cran-r

Ko te tohu tuarua me panui koe mo nga algorithms ake, he aha ratou, he aha o raatau whakaritenga, nga ahuatanga o a raatau mahi.

A ko nga mea e hoatu ana ka taea te whai hua - nga hua, mai i te algorithm ake ranei.

Ka taea ranei te tiki mai i nga hua o te algorithm.

He nui te whakawhirinaki ki nga tikanga whakauru.

Hei tauira, ki te mea, na etahi take, me tere ake te whiwhi i te hua, me titiro koe ki nga hautei hekenga whakararo me te whiriwhiri i tetahi.

Ranei, ki te kore e tino nui te wa, ka taea e koe, hei tauira, te whakamahi i nga tikanga arotautanga stochastic, penei i te algorithm ira.

E whakaaro ana ahau ki te mahi o tenei huarahi, te whiriwhiri i te whirihoranga o te punaha, te whakamahi i te algorithm ira, i te waa e whai ake nei, penei: mahi taiwhanga.

Taketake:

  1. Me waiho, hei punaha ratonga: oracle xe 18c
  2. Tukuna kia mahi i nga mahi tauwhitinga me te whainga: ki te whiwhi i te putanga teitei rawa atu o te papamahi-iti, i roto i nga tauwhitinga/sec.
  3. Ko nga whakawhitinga ka tino rerekee i te ahua o te mahi me nga raraunga me te horopaki o te mahi.
    Kia whakaae tatou he tauwhitinga enei kaore e mahi i te nui o nga raraunga ripanga.
    I roto i te tikanga karekau ratou e whakaputa raraunga wetewete ake i te mahi ano me te kore e tukatuka i nga paheketanga nui o nga rarangi me nga ripanga nui.

He tauwhitinga enei ka huri i te rarangi kotahi i roto i te teepu nui ake iti iho ranei, me te iti o nga taupū kei runga i tenei ripanga.

I roto i tenei ahuatanga: ko te hua o te papamahi iti mo te tukatuka i nga whakawhitinga, me te rahui, ka whakatauhia e te kounga o te tukatuka e te redox database.

Whakakahoretanga - mena ka korero motuhake tatou mo nga tautuhinga subdb.

No te mea, i roto i te take whanui, tera pea, hei tauira, nga raka tauwhitinga i waenga i nga waahi SQL, na te hoahoa o te mahi a te kaiwhakamahi me nga raraunga ripanga me te tauira ripanga ranei.

Ko te tikanga, ka pa te paheketanga ki te ine TPS, a he mea kee tenei, e pa ana ki te paparanga-iti: na, koinei te ahua o te tauira ripanga me te mahi me nga raraunga kei roto ka puta nga aukati.

Na reira, mo te ma o te whakamatautau, ka whakakorehia e matou tenei take, a kei raro nei ka whakamarama ahau me pehea.

  1. Me whakaaro tatou, mo te tino mohio, ko te 100% o nga whakahau SQL i tukuna ki te paataka korero he whakahau DML.
    Kia rite nga ahuatanga o te kaiwhakamahi me te papamahi-iti i roto i nga whakamatautau.
    Ara: te maha o nga huihuinga skl, nga raraunga ripanga, me pehea te mahi a skl ki a raatau.
  2. Ka mahi a Subd FORCE LOGGING, ARCHIVELOG mods. Kua wetohia te aratau Flashback-basebase, kei te taumata iti.
  3. Mahi ano i nga raarangi: kei roto i tetahi punaha konae motuhake, i runga i te "kopae" motuhake;
    Te toenga o te wahanga tinana o te putunga: i tetahi atu, he punaha konae motuhake, i runga i te "kopae" motuhake:

Nga korero mo te taputapu tinana. wāhanga pātengi raraunga taiwhanga

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

I te timatanga, i raro i enei tikanga kawenga, i hiahia ahau ki te whakamahi i te subd tauwhitinga SLOB-taputapu
He ahua whakamiharo tenei, ka kii ahau i te kaituhi:

Kei te ngakau o SLOB ko te "tikanga SLOB." Ko te tikanga SLOB e whai ana ki te whakamatautau i nga papaaho
kaore he tautohetohe tono. Kaore e taea e tetahi te taraiwa i nga mahinga taputapu morahi
te whakamahi i te waehere tono, hei tauira, herea e te raka tono, ara ranei
te tiri i nga poraka Oracle Database. E tika ana—he utu nui ina tiri raraunga
i roto i nga poraka raraunga! Engari ko te SLOB—i roto i tana whakatakotoranga taunoa—kare e pa ki enei tautohetohe.

Ko tenei whakapuakanga: he rite, he.
He watea ki te whakarite i te tohu whakarara o nga huihuinga cl, koinei te mea matua -t whakarewahia te whaipainga runit.sh mai SLOB
Ko te paheketanga o nga whakahau DML kua whakaritea, i te maha o nga karere kuputuhi ka tukuna ki te subd, ia wahanga kuputuhi, tawhā UPDATE_PCT
He mea motuhake me te tino watea: SLOB ko ia ano, i mua i muri mai i te wahanga kawenga - ka whakarite i te kete tatauranga, i nga awr-snapshots (he aha te mea kua whakaritea hei whakarite).

Heoi, ka puta ko tera SLOB kaore i te tautoko i nga waahanga SQL me te roa o te iti iho i te 30 hēkona.
Na reira, i tohu tuatahi ahau i taku ake, mahi-kaiahuwhenua o te utauta, katahi ka mau tonu te mahi.

Me whakamarama ahau he aha te mahi a te kaiuta me te pehea e mahi ai, mo te maarama.
Ko te tikanga he penei te ahua o te utauta:

Waehere kaimahi

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

Ka whakarewahia nga kaimahi penei:

Nga kaimahi oma

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

Na ka rite nga tepu mo nga kaimahi penei:

Te hanga ripanga

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"

Ko era. Mo ia kaimahi (ko te tikanga: he huihuinga SQL motuhake i te DB) ka hangaia he ripanga motuhake, hei mahi ma te kaimahi.

Ma tenei ka kore he raka tauwhitinga i waenga i nga huihuinga kaimahi.
Ko ia kaimahi: he rite tonu te mahi, me tana ake tepu, he rite tonu nga tepu.
Ka mahi nga kaimahi katoa mo te wa kotahi.
I tua atu, mo te wa roa, hei tauira, ka tino puta he huringa poro, me te neke atu i te kotahi.
Kaati, i runga i tenei, ka puta nga utu me nga paanga.
I taku keehi, i whirihorahia e ahau te roanga o te mahi a nga kaimahi i te 8 meneti.

He wahanga o te purongo putea tatauranga e whakaatu ana i te mahi o te subd i raro i te utaina

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

Te hoki ki te mahi taiwhanga.
Ka rite taatau ki etahi atu mea, ka rereke nga uara o nga tawhā e whai ake nei o te papaapapa taiwhanga taiwhanga:

  1. Rahi o nga roopu rangitaki raraunga. awhe uara: [32, 1024] MB;
  2. Te maha o nga roopu hautaka kei roto i te putunga. awhe uara: [2,32];
  3. log_archive_max_processes awhe uara: [1,8];
  4. commit_logging e rua nga uara ka whakaaetia: batch|immediate;
  5. commit_wait e rua nga uara ka whakaaetia: wait|nowait;
  6. log_buffer awhe uara: [2,128] MB.
  7. log_checkpoint_timeout awhe uara: [60,1200] hēkona
  8. db_writer_processes awhe uara: [1,4]
  9. undo_retention awhe uara: [30;300] hēkona
  10. transactions_per_rollback_segment awhe uara: [1,8]
  11. disk_asynch_io e rua nga uara ka whakaaetia: true|false;
  12. filesystemio_options ka whakaaetia nga uara e whai ake nei: none|setall|directIO|asynch;
  13. db_block_checking ka whakaaetia nga uara e whai ake nei: OFF|LOW|MEDIUM|FULL;
  14. db_block_checksum ka whakaaetia nga uara e whai ake nei: OFF|TYPICAL|FULL;

Ko te tangata whai wheako ki te pupuri i nga papaa raraunga Oracle ka taea e ia te kii he aha nga uara me whakarite, mai i nga tawhā kua tohua me o raatau uara e manakohia ana, kia nui ake ai te hua o te putunga raraunga mo te mahi me nga raraunga e tohuhia ana e te waehere tono, kei runga ake nei.

Engari.

Ko te kaupapa o te mahi taiwhanga ko te whakaatu ko te arotautanga algorithm ake ka whakamarama i tenei mo tatou.

Ki a matou, ko nga mea e toe ana ko te titiro ki roto i te tuhinga, na roto i te punaha whakarite, kia kitea he aha nga tawhā hei huri me nga awhe.
Ano hoki: tohuhia te waehere ka whakamahia hei mahi me te punaha ritenga o te algorithm arotautanga kua tohua.

Na, inaianei mo te waehere.
I korero ahau i runga ake nei cran-r, ara: ko nga raweke katoa me te punaha kua whakaritea he mea whakarite ki te ahua o te tuhinga R.

Ko te tino mahi, te tātari, te kowhiringa ma te uara ine, nga vector state system: he kete tenei GA (te tuhi)
Ko te kete, i tenei keehi, kaore i te tino pai, i runga i te whakaaro e kii ana nga vectors (chromosomes, mena kei te ahua o te kete) ka tohua ki te ahua o nga aho o nga tau me tetahi waahanga hautau.

Me taku vector, mai i nga uara o nga tawhā tautuhinga: he 14 nga rahinga - tauoti me nga uara aho.

Ko te raruraru, ko te tikanga, ka ngawari te karo ma te tautapa etahi tau motuhake ki nga uara aho.

No reira, i te mutunga, penei te ahua o te waahanga matua o te tuhinga R:

Karangatia 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

Anei, me te awhina lower и upper nga huanga iti ga Ko te tikanga, kua tohua he waahi o te waahi rapu, kei roto ka mahia he rapunga mo taua vector (he vectors ranei) e whiwhi ai te uara teitei o te mahi whakapakari tinana.

Ko te ga subroutine e mahi ana i te rapu ki te whakanui i te mahi whakapakari tinana.

Na, ka puta mai, i tenei keehi, me whiwhi te mahi whakapakari tinana, ma te mohio ki te vector hei huinga uara mo etahi tawhā o te subd, ka whiwhi i te metric mai i te subd.

Arā: e hia, me te tatūnga subd kua hoatu me te kawenga i runga i te subd: ka whakahaerehia e te subd nga whakawhitinga mo ia hekona.

Arā, i te wa e tuwhera ana, me mahi nga mahi maha e whai ake nei i roto i te mahi whakapakari tinana:

  1. Te tukatuka i te vector urunga o nga tau - ka huri hei uara mo nga tawhā iti.
  2. He ngana ki te hanga i te maha o nga roopu mahi ano o te rahi. I tua atu, kaore pea i angitu te nganatanga.
    Ko nga roopu moheni kua noho i roto i te subd, i etahi rahinga me etahi rahi, mo te ma o te whakamatautau - d.b. kua mukua.
  3. Mena kua angitu te waahi o mua: te tohu i nga uara o nga tawhā whirihoranga ki te paataka raraunga (ano: tera pea he rahua)
  4. Mena ka angitu te taahiraa o mua: whakamutua te subd, timata te subd kia whai mana ai nga uara tawhā hou. (ano: tera pea he hapa)
  5. Mena kua angitu te taahiraa o mua: mahia he whakamatautau kawenga. tiki inenga mai i te subd.
  6. Whakahokia te subd ki tona ahua taketake, i.e. mukua etahi atu roopu rangitaki, whakahokia te whirihoranga papaungaroto taketake kia mahi.

Waehere mahi whakapakari tinana

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)
}

Ko tera. mahi katoa: mahia i roto i te mahi whakapakari tinana.

Ko te ga-subroutine ka mahi vectors, he tika ake ranei, nga chromosomes.
Ko te mea nui ki a tatou ko te kowhiringa o nga chromosomes me nga ira e hua ai nga uara nui o te mahi whakapakari tinana.

Ko tenei, ko te tikanga, ko te mahi rapu mo te huinga tino pai o nga chromosomes ma te whakamahi i te vector i roto i te waahi rapunga-N.

He tino marama, he taipitopito whakamārama, me nga tauira o te R-code, te mahi a te algorithm ira.

E hiahia ana ahau ki te tuhi motuhake i nga waahanga hangarau e rua.

Nga waea awhina mai i te mahi evaluate, hei tauira, mutu-tīmatanga, te whakarite i te uara o te tawhā subd, ka mahia i runga i cran-r mahi system2

Ma te awhina: ka karangahia etahi tuhinga bash, whakahau ranei.

Hei tauira:

huinga_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)
}
}

Ko te tohu tuarua ko te raina, evaluate nga mahi, me te penapena i tetahi uara inenga motuhake me tana vector whakangao ki te konae rangitaki:

cat( paste("result: ",v_metric," ",v_vector,sep="") , file=v_logfile, sep="n", append=T)

He mea nui tenei, na te mea mai i tenei rarangi raraunga, ka taea te tiki korero taapiri mo tehea o nga waahanga o te kaitao whakaata he nui ake, iti ake ranei te paanga ki te uara ine.

Arā: ka taea te whakahaere i te tātari huanga-importamce.

Na he aha te mea ka tupu?

I roto i te ahua kauwhata, mena ka ota koe i nga whakamatautau i runga i te raupapa inenga piki, ka penei te pikitia:

Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga

Ko etahi raraunga e pa ana ki nga uara tino nui o te ine:
Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga
I konei, i roto i te whakaahua me nga hua, ka whakamaramatia e au: ko nga uara o te tohu tohu ka tukuna i runga i nga tikanga o te waehere mahi tinana, kaua ki te rarangi nama o nga tawhā/awhe o nga uara tawhā, i hangaia. i runga i te tuhinga.

Kaati. He nui, he iti ranei, ~8 mano tps: he patai motuhake.
I roto i te anga o te mahi taiwhanga, ehara tenei whika i te mea nui, ko te mea nui ko te hihiri, me pehea te whakarereketanga o tenei uara.

He pai nga hihiri o konei.
E kitea ana ko tetahi take e awe nui ana i te uara o te ine, te ga-algorithm, e tohatoha ana i roto i nga vectors chromosome: kapi.
Ki te whakatau i te kaha kaha o nga uara pihinga, kotahi ake pea te mea, ahakoa he iti ake, ka whai mana.

Koinei te waahi e hiahia ana koe attribute-importance he tātaritanga kia mohio ai he aha nga huanga (he pai, i tenei keehi, nga waahanga o te vector whakarangi) me te nui o te awe i te uara ine.
A mai i enei korero: kia mohio he aha nga mea i pa ki nga huringa o nga huanga nui.

Whakahaere attribute-importance ka taea i roto i nga huarahi rereke.

Mo enei kaupapa, he pai ki ahau te algorithm randomForest R mōkihi he ōrite te ingoa (te tuhi)
randomForest, i te mea e mohio ana ahau ki tana mahi i te nuinga o te waa me tana huarahi ki te aromatawai i te hiranga o nga huanga otira, ka hangaia he tauira mo te whakawhirinaki o te taurangi whakautu ki nga huanga.

I roto i ta maatau, ko te taurangi whakautu he ine i whiwhi mai i te papaaarangi i roto i nga whakamatautau uta: tps;
A ko nga huanga he waahanga o te vector oro.

Na konei randomForest ka arotake i te hiranga o ia huanga tauira me nga tau e rua: %IncMSE — me pehea te noho/kore o tenei huanga i roto i tetahi tauira ka huri i te kounga MSE o tenei tauira (Mean Squared Error);

A ko te IncNodePurity he tau e whakaatu ana i te pai, i runga i nga uara o tenei huanga, ka taea te wehewehe i tetahi huingararaunga me nga tirohanga, na i tetahi waahanga he raraunga me tetahi uara o te ine kua whakamaramatia, i tetahi atu me te tetahi atu uara o te ine.
Ae, ara: he aha te whānuitanga o tenei huanga whakarōpūtanga (i kite ahau i te whakamarama tino marama, reo-Rusia i runga i te RandomForest konei).

Kaimahi-kaiahuwhenua R-waehere mo te tukatuka i te huingararaunga me nga hua o nga whakamatautau kawenga:

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

Ka taea e koe te kowhiri tika i nga taapiri o te algorithm me o ringaringa, me te aro ki te kounga o te tauira, kowhiria he tauira e tutuki tika ai nga matapae i runga i te huinga raraunga whakamana.
Ka taea e koe te tuhi i etahi momo mahi mo tenei mahi (ma te ara, ano, ma te whakamahi i etahi momo algorithm arotautanga).

Ka taea e koe te whakamahi i te putea R caret, ehara i te mea nui te kaupapa.

Ko te mutunga, i tenei keehi, ko nga hua e whai ake nei ka puta hei aromatawai i te taumata o te hiranga o nga huanga:

Ko te tikanga poke pūtaiao, me pehea ranei te kowhiri i te whirihoranga raraunga ma te whakamahi i nga tohu tohu me te algorithm arotautanga

Kaati. Na, ka taea e tatou te timata ki te whakaaro huritao:

  1. Ka puta ko te mea tino nui, i raro i enei tikanga whakamatautau, ko te tawhā commit_wait
    Ma te hangarau, ka tohuhia te aratau mahi o te mahi io o te tuhi korero ano mai i te papaarangi rangitaki subdb ki te roopu rangitaki o naianei: tukutahi, tukutahi ranei.
    uara nowait e hua ana i te tata poutū, te pikinga maha o te uara o te inenga tps: koinei te whakaurunga o te aratau io asynchronous ki nga roopu mahi ano.
    He patai motuhake mehemea me mahi koe i tenei i roto i te putunga kai. I konei ka whakawhäitihia ahau ki te kii noa: he take nui tenei.
  2. He mea arorau ko te rahi o te papaa pororakau o te subd: ka puta he take nui.
    Ko te iti ake o te rahi o te poroporo poroporoaki, ko te iti ake o te kaha o te paanui, ko te nuinga o te wa e puhake ana, me te kore ranei e taea te toha i tetahi waahi koreutu ki roto mo tetahi waahanga o nga raraunga redox hou.
    Ko te tikanga: ko nga whakaroa e pa ana ki te toha mokowā i roto i te papaa pororakau me te tuku ano i nga raraunga mai i a ia ki nga roopu mahi ano.
    Ko enei whakaroa, ko te tikanga, me pa ki te urunga o te paataka mo nga whakawhitinga.
  3. Taumahi db_block_checksum: pai, ano hoki, i te nuinga o te waa he maamaa - ko te tukatuka tauwhitinga ka arahi ki te hanganga o nga poraka darty i roto i te keteroki putunga o te papaapapa.
    Ina, ka whakahohea te arowhai o nga parakararaungaraunga, me whakahaere e te papaarangi raraunga - tatauhia enei arowhai mai i te tinana o te parapara raraunga, tirohia me nga mea kua tuhia ki te pane parapara raraunga: he rite/karekau e rite.
    Ko nga mahi penei, kaore e taea te whakaroa i te tukatuka raraunga, na reira, ko te tawhā me te tikanga e whakatakoto ana i tenei tawhā ka puta he mea nui.
    Koinei te take ka tukuna e te kaihoko, i roto i nga tuhinga mo tenei tawhā, nga uara rereke me nga tuhipoka e ae, ka puta he paanga, engari ka taea e koe te whiriwhiri i nga uara rereke, ahakoa "atu" me nga paanga rereke.

Ana, he whakatau o te ao.

Ko te huarahi, i te nuinga o te waa, ka puta he tino mahi.

Ka taea e ia, i te timatanga o te whakamatautau kawenga o tetahi punaha ratonga, ki te whiriwhiri i tana (pūnaha) whirihoranga tino pai mo te kawenga, kia kaua e uru ki roto i nga korero mo te whakarite i te punaha mo te kawenga.

Engari kaore e tino whakakorehia - i te iti rawa i te taumata o te maarama: me mohio te punaha mo nga "whakatikatika" me nga awhe e whakaaetia ana mo te hurihanga o enei puku.

Ka taea e te huarahi te kimi tere i te whirihoranga punaha tino pai.
Na i runga i nga hua o te whakamatautau, ka taea te tiki korero mo te ahuatanga o te hononga i waenga i nga inenga mahi a te punaha me nga uara o nga tawhā tautuhinga punaha.

Ko te tikanga, me whai waahi ki te puta mai o tenei maaramatanga hohonu o te punaha, tana mahi, i te iti rawa i raro i tetahi kawenga.

I roto i te mahi, he utu tenei mo te mohio ki te punaha kua whakaritea mo nga utu mo te whakarite i nga whakamatautau o te punaha.

E hiahia ana ahau ki te tuhi motuhake: i roto i tenei huarahi, he mea tino nui te tohu o te tika o te whakamatautau i nga punaha ki nga tikanga whakahaere i roto i nga mahi arumoni.

Mauruuru koe mo to aro me to wa.

Source: will.com

Tāpiri i te kōrero