*** empty log message ***

svn path=/trunk/boinc/; revision=11340
This commit is contained in:
David Anderson 2006-10-23 14:08:20 +00:00
parent a69d19542c
commit e12f6efa55
8 changed files with 137 additions and 114 deletions

View File

@ -11386,8 +11386,8 @@ David 21 Oct 2006
server_types.h
Rom 22 Oct 2006
- MGR: CSkinClass is now dead. All references in the simple GUI have been changed
to CSkinManager.
- MGR: CSkinClass is now dead.
All references in the simple GUI have been changed to CSkinManager.
- Cleaned up a bunch of warnings.
clientgui/
@ -11403,3 +11403,12 @@ Charlie 21 Oct 2006
mac_build/
boinc.xcodeproj/
project.pbxproj
David 22 Oct 2006
- scheduler: rename "reliable_min_avg_turnaround"
to "reliable_max_avg_turnaround"
- add some doc for new reliable-host scheme
sched/
sched_config.C,h
sched_send.C

View File

@ -257,6 +257,7 @@ f72103eb0995be77cac54f253c0ba639a814d3293646ae11894e9d1367a98790
<authenticator>KEY</authenticator>
[ <update/> ]
[ <detach/> ]
[ <resource_share>X</resource_share> ]
</account>
...
]

View File

@ -478,9 +478,20 @@ mysqladmin extended-status 10
</h2>Performance Tweaking</h2>
<h3>General</h3>
An often overlooked area of performance is the requirement for reliable power and air conditioning. Power failures can eliminate all the benefits accrued by careful planning for hardware and software installations. Experience is that unreliable power can lead to days of recovery with data loss and subscriber discontent. Similarly, insufficient cooling accelerates the aging of hardware components and can cause data corruption and downtime more frequently than the one would expect given the hardware specs.
An often overlooked area of performance is the requirement
for reliable power and air conditioning.
Power failures can eliminate all the benefits accrued
by careful planning for hardware and software installations.
Experience is that unreliable power can lead to days
of recovery with data loss and subscriber discontent.
Similarly, insufficient cooling accelerates the aging of
hardware components and can cause data corruption and
downtime more frequently than the one would expect given the hardware specs.
<pre>
There are several parameters in my.cnf that can be adjusted (within limits) for better throughput. Then the distribution of MySQL files to specified disk subsystems, allocation of RAM and Config: my.cnf options for files, RAM, IO options
There are several parameters in my.cnf that can be adjusted (within limits)
for better throughput.
Then the distribution of MySQL files to specified disk subsystems,
allocation of RAM and Config: my.cnf options for files, RAM, IO options
</pre>

View File

@ -24,7 +24,6 @@ echo html_text("
<upload_url> http://A/URL </upload_url>
<upload_dir> /path/to/directory </upload_dir>
<cgi_url> http://A/URL </cgi_url>
<stripchart_cgi_url> http://A/URL </stripchart_cgi_url>
<log_dir> /path/to/directory </log_dir>
[ <disable_account_creation/> ]
@ -53,7 +52,6 @@ echo html_text("
[ <default_disk_max_used_gb> X </default_disk_max_used_gb> ]
[ <default_disk_max_used_pct> X </default_disk_max_used_pct> ]
[ <default_disk_min_free_gb> X </default_disk_min_used_pct> ]
[ <sched_disk_space_check_hardcoded/> ]
[ <max_claimed_credit>X</max_claimed_credit ]
[ <grant_claimed_credit/> ]
[ <symstore>URL</symstore> ]
@ -71,8 +69,9 @@ echo html_text("
")
;
echo "<b>The general project configuration elements are:</b>";
list_start();
list_bar("Hosts, directories, and URLs (these are created
by make_project; normally you don't need to change them)");
list_item("host",
"name of project's main host, as given by Python's socket.hostname().
Daemons and tasks run on this host by default."
@ -94,7 +93,6 @@ list_item("uldl_dir_fanout", "fan-out factor of upload and download directories
);
list_item("upload_dir", "absolute path of upload directory");
list_item("cgi_url", "URL of scheduling server");
list_item("stripchart_cgi_url", "URL of stripchart server");
list_item("log_dir", "Path to the directory where the assimilator, feeder, transitioner and
cgi output logs are stored. This allows you to change the default log
directory path. If set explicitly, you can also use the 'grep logs'
@ -107,30 +105,96 @@ list_item("sched_lockfile_dir",
directory where scheduler lockfiles are stored.
Must be writable to the Apache user.
");
list_bar("Web site features");
list_item("profile_screening",
"If present, don't show profile pictures until they've been
screened and approved by project admins."
);
list_end();
echo "
<b>The following control features that you may or may not want
available to users.</b>
";
list_start();
list_item("disable_account_creation",
"If present, disallow account creation"
);
list_item("show_results",
"Enable web site features that show results (per user, host, etc.)"
);
list_end();
echo "
<b>The following control the way in which results are scheduled, sent,
and assigned to users and hosts.</b>
";
list_start();
list_bar( "Miscellaneous");
list_item("disable_account_creation",
"If present, disallow account creation"
);
list_item("min_passwd_length",
"Minimum length of user passwords. Default is 6."
);
list_bar( "Client control");
list_item("verify_files_on_app_start",
"Before starting or restarting an app,
check contents of input files and app version files
by either MD5 or digital signature check.
Detects user tampering with file
(but doesn't really increase security,
since user could also change MD5s or signatures in
client state file)."
);
list_item("symstore",
"URL of your project's symbol store,
used for debugging Windows applications."
);
list_item("min_core_client_version_announced",
"Announce a new version of the BOINC core client, which in the future
will be the minimum required version. In conjunction with the next
tag, you can warn users with version below this to upgrade by a
specified deadline. Example value: 419."
);
list_item("min_core_client_upgrade_deadline",
"Use in conjunction with the previous tag. The value given here is the
Unix epoch returned by time(2) until which hosts can update their
core client. After this time, they may be shut out of the project.
Before this time, they will receive messages warning them to upgrade."
);
list_item("non_cpu_intensive",
"If this flag is present,
the project will be treated specially by the client:
<ul>
<li> The client will download one result at a time.
<li> This result will be executed whenever computation is enabled
(bypassing the normal scheduling mechanism).
</ul>
This is intended for
<a href=non_cpu_intensive.php>applications that use little CPU time</a>,
e.g. that do network or host measurements."
);
list_bar( "Server logging");
list_item("sched_debug_level",
"Verbosity level for scheduler log output.
1=minimal, 2=normal (default), 3=verbose."
);
list_item("fuh_debug_level",
"Verbosity level for file upload handler log output.
1=minimal, 2=normal (default), 3=verbose."
);
list_bar( "Credit");
list_item("max_claimed_credit",
"If a result claims more credit than this, mark it as invalid."
);
list_item("grant_claimed_credit",
"If set, grant the claimed credit,
regardless of what other results for this workunit claimed.
These is useful for projects where
different instances of the same job
can do much different amounts of work.
"
);
list_item("fp_benchmark_weight",
"The weighting given to the Whetstone benchmark
in the calculation of claimed credit.
Must be in [0 .. 1].
Projects whose applications are floating-point intensive should use 1;
pure integer applications, 0.
Choosing an appropriate value will reduce the disparity
in claimed credit between hosts.
The script html/ops/credit_study.php,
run against the database of a running project,
will suggest what value to use."
);
list_bar( "Scheduling options and parameters");
list_item("one_result_per_user_per_wu",
"If present, send at most one result of a given workunit to a given user.
This is useful for checking accuracy/validity of results.
@ -149,18 +213,6 @@ list_item("max_wus_to_send",
the net at intervals has enough work to keep it occupied in between
connections."
);
list_item("non_cpu_intensive",
"If this flag is present,
project will be treated specially by the client:
<ul>
<li> The client will download one result at a time.
<li> This result will be executed whenever computation is enabled
(bypassing the normal scheduling mechanism).
</ul>
This is intended for
<a href=non_cpu_intensive.php>applications that use little CPU time</a>,
e.g. that do network or host measurements."
);
list_item("min_sendwork_interval",
"Minimum number of seconds to wait after sending results to a given
host, before new results are sent to the same host. Helps prevent
@ -233,18 +285,6 @@ list_item("cache_md5_info",
are re-used, and (2) there are many of these files, and (3) reading
the files from disk is time-consuming."
);
list_item("min_core_client_version_announced",
"Announce a new version of the BOINC core client, which in the future
will be the minimum required version. In conjunction with the next
tag, you can warn users with version below this to upgrade by a
specified deadline. Example value: 419."
);
list_item("min_core_client_upgrade_deadline",
"Use in conjunction with the previous tag. The value given here is the
Unix epoch returned by time(2) until which hosts can update their
core client. After this time, they may be shut out of the project.
Before this time, they will receive messages warning them to upgrade."
);
list_item("nowork_skip",
"If the scheduling server has no work,
it replies to RPCs without doing any database access
@ -273,21 +313,6 @@ list_item("resend_lost_results",
client, and this flag is set, then those results are RESENT by the
scheduler before any new work is sent."
);
list_item("min_passwd_length",
"Minimum length of user passwords. Default is 6."
);
list_item("fp_benchmark_weight",
"The weighting given to the Whetstone benchmark
in the calculation of claimed credit.
Must be in [0 .. 1].
Projects whose applications are floating-point intensive should use 1;
pure integer applications, 0.
Choosing an appropriate value will reduce the disparity
in claimed credit between hosts.
The script html/ops/credit_study.php,
run against the database of a running project,
will suggest what value to use."
);
list_item("default_disk_max_used_gb", "Sets the default value for
the disk_max_used_gb preference so its consistent between the
@ -318,29 +343,23 @@ list_item("default_disk_min_free_gb", "Sets the default value for
to keep from filling up the drive. Recommend setting this no
smaller than .001 (1MB or 1,000,000 bytes). Default is .001.
");
list_item("sched_disk_space_check_hardcoded", "Controls how the
above three settings are interpreted by the web page php scripts.
This setting is for projects that updated the php scripts to
get the default disk space usage settings from config.xml, but
haven't updated their scheduler to do the same.
");
list_item("max_claimed_credit",
"If a result claims more credit than this, mark it as invalid."
);
list_item("grant_claimed_credit",
"If set, grant the claimed credit,
regardless of what other results for this workunit claimed.
These is useful for projects where
different instances of the same job
can do much different amounts of work.
list_item("reliable_time<br> reliable_min_avg_credit<br>
reliable_min_avg_turnaround<br> reliable_reduced_delay_bound",
"These parameters control a mechanism that attempts to send
old results (e.g. those whose siblings have timed out or failed)
to fast, reliable hosts.
<p>
This mechanism is used when the age of a workunit exceeds
<b>reliable_time</b> (typically 2-3X the delay bound).
The results are sent to hosts with at least
<b>reliable_min_avg_credit</b> and at most
<b>reliable_max_avg_turnaround</b>.
The delay bound is multiplied by <b>reliable_reduced_delay_bound</b>
(typically 0.5 or so).
"
);
list_item("symstore",
"URL of your project's symbol store,
used for debugging Windows applications."
);
list_bar( "File deleter options");
list_item("dont_delete_batches",
"If this boolean is set,
the file deleter won't delete any files for which
@ -354,23 +373,6 @@ list_item("dont_delete_batches",
If you use this option, replace the indices on
file_delete_state with indices on (file_delete_state, batch)."
);
list_item("sched_debug_level",
"Verbosity level for scheduler log output.
1=minimal, 2=normal (default), 3=verbose."
);
list_item("fuh_debug_level",
"Verbosity level for file upload handler log output.
1=minimal, 2=normal (default), 3=verbose."
);
list_item("verify_files_on_app_start",
"Before starting or restarting an app,
check contents of input files and app version files
by either MD5 or digital signature check.
Detects user tampering with file
(but doesn't really increase security,
since user could also change MD5s or signatures in
client state file)."
);
list_end();

View File

@ -18,7 +18,7 @@ function option($name, $val) {
function project_specific_prefs_default() {
return "
<color_scheme>Tahiti Sunset</color_scheme>
<refresh_rate>100</refresh_rate>
<max_frames_sec>100</max_frames_sec>
";
}
@ -35,8 +35,8 @@ function project_specific_prefs_edit($prefs, $error=false) {
";
row2("Color scheme", $y);
$y = "<input size=5 name=refresh_rate value='$prefs->refresh_rate'> Hertz ";
row2("Refresh Rate", $y, isset($error->refresh_rate));
$y = "<input size=5 name=max_frames_sec value='$prefs->max_frames_sec'>";
row2("Max frames/sec", $y, isset($error->max_frames_sec));
}
// Parse form vars, return XML version of project-specific prefs
@ -44,18 +44,18 @@ function project_specific_prefs_edit($prefs, $error=false) {
//
function project_specific_prefs_parse_form(&$error) {
$color_scheme = $_GET["color_scheme"];
$refresh_rate = $_GET["refresh_rate"];
$max_frames_sec = $_GET["max_frames_sec"];
// add and modify this line for other user
// editable values that should be validated
//
if (!verify_numeric($refresh_rate, 0)) $error->refresh_rate = true;
if (!verify_numeric($max_frames_sec, 0)) $error->max_frames_sec = true;
// Please look at util.inc for further information regarding:
// function verify_numeric(&$value, $low, $high = false)
return "<color_scheme>$color_scheme</color_scheme>
<refresh_rate>$refresh_rate</refresh_rate>
<max_frames_sec>$max_frames_sec</max_frames_sec>
";
}
@ -67,11 +67,11 @@ function project_specific_prefs_show($prefs, $columns=false) {
if ($columns) {
// This is used if columns-view is enabled
row_defs("Color scheme","color_scheme", "", "", $prefs);
row_defs("Refresh rate", "refresh_rate", "Hertz", "", $prefs);
row_defs("Max frames/sec", "max_frames_sec", "", "", $prefs);
} else {
// This is used if normal-view is enabled
row2("Color scheme", $prefs->color_scheme);
row2("Refresh rate", $prefs->refresh_rate." Hertz");
row2("Max frames/sec", $prefs->max_frames_sec);
}
}
@ -79,6 +79,6 @@ function project_specific_prefs_show($prefs, $columns=false) {
//
function project_specific_prefs_parse($prefs_xml) {
$prefs->color_scheme = parse_element($prefs_xml, "<color_scheme>");
$prefs->refresh_rate = parse_element($prefs_xml, "<refresh_rate>");
$prefs->max_frames_sec = parse_element($prefs_xml, "<max_frames_sec>");
return $prefs;
}

View File

@ -121,7 +121,7 @@ int SCHED_CONFIG::parse(FILE* f) {
else if (xp.parse_int(tag, "sched_debug_level", sched_debug_level)) continue;
else if (xp.parse_int(tag, "fuh_debug_level", fuh_debug_level)) continue;
else if (xp.parse_int(tag, "reliable_min_avg_credit", reliable_min_avg_credit)) continue;
else if (xp.parse_int(tag, "reliable_min_avg_turnaround", reliable_min_avg_turnaround)) continue;
else if (xp.parse_int(tag, "reliable_max_avg_turnaround", reliable_max_avg_turnaround)) continue;
else if (xp.parse_int(tag, "reliable_time", reliable_time)) continue;
else if (xp.parse_double(tag, "reliable_reduced_delay_bound", reliable_reduced_delay_bound)) continue;

View File

@ -78,7 +78,7 @@ public:
int fuh_debug_level;
int reliable_time; // age of workunit before requiring reliable
int reliable_min_avg_credit;
int reliable_min_avg_turnaround;
int reliable_max_avg_turnaround;
double reliable_reduced_delay_bound;
int parse(FILE*);

View File

@ -283,7 +283,7 @@ static int get_host_info(SCHEDULER_REPLY& reply) {
if (strstr(reply.host.os_name,"Windows") || strstr(reply.host.os_name,"Linux")
) {
if (((expavg_credit/reply.host.p_ncpus) > config.reliable_min_avg_credit || config.reliable_min_avg_credit == 0)
&& (avg_turnaround < config.reliable_min_avg_turnaround || config.reliable_min_avg_turnaround == 0)
&& (avg_turnaround < config.reliable_max_avg_turnaround || config.reliable_max_avg_turnaround == 0)
){
reply.wreq.host_info.reliable = true;
log_messages.printf(SCHED_MSG_LOG::MSG_NORMAL,
@ -294,7 +294,7 @@ static int get_host_info(SCHEDULER_REPLY& reply) {
}
} else {
if (((expavg_credit/reply.host.p_ncpus) > config.reliable_min_avg_credit*.75 || config.reliable_min_avg_credit == 0)
&& (avg_turnaround < config.reliable_min_avg_turnaround*1.25 || config.reliable_min_avg_turnaround == 0)
&& (avg_turnaround < config.reliable_max_avg_turnaround*1.25 || config.reliable_max_avg_turnaround == 0)
){
reply.wreq.host_info.reliable = true;
log_messages.printf(SCHED_MSG_LOG::MSG_NORMAL,