Page 1 of 1

Реально ли это реализовать

Posted: Tue Feb 28, 2012 5:04 pm
by Blackseos
Здравствуйте уважаемые гуру cmsms. Я не так давно зареган на данном форуме, и интересует такой вопрос: хочу сделать мега проект на данной cms на проекте будет более 10 000 стр. и посещалка по прогнозам будет составлять от 4000 - 10000 уников в сутки, регистрации и многих других модулей просто напросто не будет, так как проект будет информационным, и реализованы тематики ремонт квартир, машин, сделать мебель своими руками, короче говоря все что связанно со словами "сделать самому", ну вот немного ушел от сути вопроса, а вопрос заключается в следующем, насколько cmsms сможет выдержать такие нагрузки, не будет ли из-за нагрузки падать сервер? почему задаю такой вопрос, просто видел на форуме ветку, что мол очень плохо держит нагрузки + хорошо нагружает сервак, что мол под него надо очень хорошее железо. Скажите был ли у кого опыт с работой подобие таких проектов на cmsms? и кто подскажет какое лучше брать железо чтоб держал такие нагрузки?

Re: Реально ли это реализовать

Posted: Wed Feb 29, 2012 4:59 pm
by Fenik17
10000 в сутки - это, можно сказать, мизерная нагрузка.
По поводу большого количества страниц - для прежних версий писали, что плохо тянет. Но в 10 версии оптимизировали некоторые места, может быть ситуация изменилась в лучшую сторону. Хотя, кто знает..

Re: Реально ли это реализовать

Posted: Thu Mar 15, 2012 6:34 pm
by Blackseos
Так мне не кто и не ответит нормально, сможет ли cmsms 10.3 выдержать нагрузку 10 - 20 к. уников в сутки и более 10-15 к. странниц на сайте, не будет ли она провисать?

Re: Реально ли это реализовать

Posted: Fri Mar 16, 2012 7:44 am
by Fenik17
Blackseos wrote:Так мне не кто и не ответит нормально, сможет ли cmsms 10.3 выдержать нагрузку 10 - 20 к. уников в сутки и более 10-15 к. странниц на сайте, не будет ли она провисать?
Кто вам мешает проверить? Сгенерировать тысячи страниц можно простым скриптом, а протестировать на нагрузку - с помощью JMeter, к примеру.

Re: Реально ли это реализовать

Posted: Fri Mar 16, 2012 11:38 am
by Blackseos
а подскажите плиз этот скрипт

Re: Реально ли это реализовать

Posted: Mon Mar 19, 2012 6:58 am
by Fenik17
Оформлен в виде плагина (add_rand), можно и на пользовательский тег переделать. Недостаток - не успевает сгенерить за раз много страниц, если не укладывается в time limit. Генерирует страницы на 2 уровня вложенности; сколько на каждом уровне - задается переменными x, y, z. В данном случае должен создать 40 страниц (2*4*5).

Code: Select all

<?php

function genString($len) {
	$chars = 'abdefhiknrstyz ABDEFGHKNQR STYZ23 456789 .-,:';
	$count_chars = strlen ($chars); 
	for ($i=0; $i<$len; $i++) { 
		$rand = rand (1,$count_chars);
		$ret .= substr ($chars, $rand, 1);
	} 
	return $ret;
}

function add_page($parent_id) 
{
	$gCms = cmsms();
	$contentops =& $gCms->GetContentOperations();
	$userid = get_userid();
	$templateops =& $gCms->GetTemplateOperations();
	$dflt = $templateops->LoadDefaultTemplate();

	$contentobj = $contentops->CreateNewContent('content');
	$contentobj->SetPropertyValue('content_en', genString(1500));
	$contentobj->SetTitleAttribute('Random content');
	$contentobj->SetMenuText('Random content');
	$contentobj->SetAlias('');
	$contentobj->SetCachable(true);
	$contentobj->SetActive(true);
	$contentobj->SetShowInMenu(true);
	$contentobj->SetLastModifiedBy($userid);
	$contentobj->SetTemplateId($dflt->id);
	$contentobj->SetParentId($parent_id);
	$contentobj->SetOwner($userid);
	$contentobj->SetAddMode();
	if ($contentobj->ValidateData() === false) {
		$contentobj->Save();
		return $contentobj->Id();
	}
	else {
		return false;
	}
}

function smarty_cms_function_add_rand($params, &$smarty) 
{
	$x=2; $y=4; $z=5;
	for (;$x-- > 0;) {
		$x_id = add_page(-1);
		for ($j = $y; $j-- > 0;) {
			$y_id = add_page($x_id);
			for ($k = $z; $k-- > 0;) {
	  			add_page($y_id);
	 		}
		}
	}

	cmsms()->GetContentOperations()->SetAllHierarchyPositions();
	return 'done';
}

function smarty_cms_help_function_add_rand()
{
  echo lang('help_function_add_rand');
}

function smarty_cms_about_function_add_rand()
{
	?>
	<p>Author: fenik17</p>
	<p>Version: 1.0</p>
	<p>
	Change History:<br/>
	1.0 - Initial version
	</p>
	<?php
}

?>

Re: Реально ли это реализовать

Posted: Mon Mar 19, 2012 7:04 am
by Fenik17
Если хочется прямо за раз сгенерировать 10000 страниц - надо запускать скрипт не под веб-сервером. Но для этого его придется переделать. Проще этот повесить на какую-нибудь страницу и вызывать, пока нужное количество не наберется.