LINUX.ORG.RU

Есть транзакционный апдейт. Есть такое в линуксах? Тяжеловато такое наверное без легких снепшотов на ZFS

vertexua ★★★★★
() автор топика

Solaris. Название красивое. Никаких тебе аббревиатур и акронимов.

CARS ★★★★
()

Sun - RIP, причем такой не иллюзорный как BSD, так что Соляру можно закапывать.

ViTeX ★★★★
()

Быстро работает жаба, есть встроенные средства для безопасности и виртуализации (линуксовые аналоги обычно надо ставить и настраивать ручками)

stevejobs ★★★★☆
()
Ответ на: комментарий от vertexua

зоны гораздо кавайнее чем опенвз и джейлсы. хотя бы своей дружбой с зфс

redixin ★★★★
()

ipfilter который не умеет pat

najar
()

trusted extensions и самое главное, он сертифицирован хоть как-то)

najar
()
Ответ на: комментарий от Shaman007

Он, наверное, намекает на возраст типичного копролита.

Количество ЛОР-оцев, разбирающихся в сортах говна просто завораживает. A мне вот, чтоб узнать, что есть «копролит», пришлось лезть в google.... :(

ansi ★★★★
()
Ответ на: комментарий от ansi

Достоверная информация только на английской части википедии. Ссылки на русском, которые первыми выдает гугл, какие-то бредовые.

Shaman007 ★★★★★
()
Ответ на: комментарий от Shaman007

Вот такой Солярис, понимаешь!

Идите на йух :) Толсто, же. Далее наш UA кровью в вашем подъезде.

// Если что это шутка такая, мало ли ;)

ansi ★★★★
()
Ответ на: комментарий от sdio

Что хорошего в Solaris кроме ZFS?

ansi> Всё.

Всмысле «всё хорошо» или «на этом всё и закончилось» ?

В смысле «всё заичательно». Одно плохо - выпилили Хеn, приходится виртуал бокс хедлесом гонять. :( A так даже ISC DHCP как альтернативу Сановскому запилили. Просто красота!

ansi ★★★★
()

Система администрирования гуевая есть. А также хороший аналог sudo, где роли уже расписаны почти на все случаи жизни...

Кажись, вот и все.

segfault ★★★★★
()
Ответ на: комментарий от vertexua

В сравнении с линупсом как?

Медленней. Когда-то пролетала ссылка, что самая быстрая JRE на винде, вторая на линуксе а солярка была на третьем или пятом месте

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Медленней. Когда-то пролетала ссылка

с таким авторитетным утверждением неплохо бы и поискать ссылочку.
а я тебе пока обратное к размышлению подкину ;)

EvgGad_303 ★★★★★
()

Crossbow что дает?

виртуализация сетевого стека, если так непонятно, то наверное незачем Ж)

Система управления сервисам?

smf + fma почитайте, мониторинг и перезапуск сервисов с зависимостями и т.д.

Хваленные планировщики?

а так же сетевой стек, дисковая подсистема... )
duno, под каждую задачу свой планировщик и настройки.

EvgGad_303 ★★★★★
()
Ответ на: комментарий от yyk

Твоё Ы от 2005 года?!

Сегодня специально написал чистую синтетику и прогнал её на трех одинаковых виртуалках.

Конфигурации виртуалок: 1CPU, 1GB RAM

Операционки: Fedora 14 (64-битная), Solaris 11 (64-битная), Windows 2003 (32-битная)

Тест - несколько простейших операций:

1. Запись в Vector<String> 200000 строк

2. Чтение их из вектора

3. Запись в Hashtable<Long,String> 70.000 строк

4. Запись в Hashtable<String,String> 70.000 строк

5. Чтение их из хэш-таблицы по ключу Long

6. Чтение их из хэш-таблицы по ключу String

Итого, время выполнения (усредненное по 4 запускам) в секундах:

Win32: 9.917 - 0.057 - 1.010 - 1.172 - 0.448 - 0.745 - итого 13.349

Linux: 10.118 - 0.058 - 1.119 - 2.140 - 0.149 - 0.682 - итого 14.226

Solaris: 10.952 - 0.373 - 0.626 - 2.900 - 0.161 - 0.776 - итого 15.788

По факту, победила винда в 3 номинациях, Linux в 2 тестах и Solaris в 1. В общем зачете винда лучшая, линукс на втором месте, и солярис на третьем.

Код теста:

import java.util.*;

public class TestRun implements Runnable {

	int testmode = 0;
	long onstart;
	long onstop;
	long operlen;
	Vector<TestRun> workers;
	int hashTrips = 70000;
	int vectorTrips = 200000;
	Vector<TestRun> clients;

	Vector<String> vect;
	Hashtable<Long,String> hash1;
	Hashtable<String,String> hash2;
	String glob1;
	String glob2;
	TestRun controller;

	public TestRun() {
		clients = new Vector<TestRun>(10);
		workers = new Vector<TestRun>(10);
	}

	public void addWorker(TestRun w) { if (!workers.contains(w)) { workers.add(w); w.controller = this; } }
	public int workersCount() { return workers.size(); }

	public int getTestMode() { return testmode; }

	public TestRun(TestRun ctrl) {
		vect = new Vector<String>(500,100);
		hash1 = new Hashtable<Long,String>();
		hash2 = new Hashtable<String,String>();
		ctrl.addWorker(this);
	}

	public void cAddClient(TestRun client) {
		synchronized (this) {
			if (!clients.contains(client)) {
				clients.add(client);
			}
		}
	}

	public void cRemoveClient(TestRun client) {
		synchronized (this) {
			if (clients.contains(client)) {
				clients.remove(client);
			}
		}
	}

	public int cClientCount() {
		synchronized(this) { return clients.size(); }
	}

	public void fillVectorTest() {
		for (int i=0;i<vectorTrips;i++) {
			vect.add("Element "+i);
		}
	}

	public void readVectorTest() {
		for (int i=0;i<vectorTrips;i++) {
			glob1 = vect.elementAt(i);
		}
	}

	public void fillHashTest1() {
		for (long i=0;i<hashTrips;i++) {
			hash1.put(i,"Value "+i);
		}
	}

	public void fillHashTest2() {
		for (int i=0;i<hashTrips;i++) {
			hash2.put("Key "+i,"Value "+i);
		}
	}

	public void readHashTest1() {
		for (int i=0;i<hashTrips;i++) {
			glob1 = hash1.get(i);
			glob2 = hash1.get(i+hashTrips);
		}
	}

	public void readHashTest2() {
		for (int i=0;i<hashTrips;i++) {
			glob1 = hash2.get("Key "+i);
			glob2 = hash2.get("VKey "+i);
		}
	}

	public void run() {
		controller.cAddClient(this);
		try {
			if (controller.getTestMode()==1) {
				fillVectorTest();
			} else if (controller.getTestMode()==2) {
				readVectorTest();
			} else if (controller.getTestMode()==3) {
				fillHashTest1();
			} else if (controller.getTestMode()==4) {
				fillHashTest2();
			} else if (controller.getTestMode()==5) {
				readHashTest1();
			} else if (controller.getTestMode()==6) {
				readHashTest2();
			}
		} catch (Exception e) {
			System.err.println("Worker died in exception "+e.toString());
		}
		controller.cRemoveClient(this);
	}

	public void startsnap() {
		GregorianCalendar c = new GregorianCalendar();
		onstart = c.getTimeInMillis();
		System.out.println("test mode "+testmode+" started");
	}

	public void endsnap() {
		GregorianCalendar c = new GregorianCalendar();
		onstop = c.getTimeInMillis();
		operlen = onstop - onstart;
		System.out.println("test mode "+testmode+" took "+operlen+"ms for "+workers.size()+" threads\n\n");
	}

	public void runTest(int id) {

		testmode = id;

		Thread ths[] = new Thread[workers.size()];
		for (int i=0;i<workers.size();i++) {
			ths[i] = new Thread(workers.elementAt(i));
			cAddClient(workers.elementAt(i));
                        // Workaround! In this f*&^%g solaris test controller start
                        // threads and comes into a cycle before any worker becames
                        // running
		}

		startsnap();

		for (int i=0;i<ths.length;i++) ths[i].start();

		int tmp = 0;
		while (cClientCount()>0) {
			tmp++;
			if (tmp%500==0) {
				System.err.println("Active threads: " + cClientCount());
			}
			try { Thread.sleep(10); } catch (Exception x) {}
		}
		endsnap();
	}

	public static void main(String args[]) {
		TestRun ctrl = new TestRun();
		for (int i=0;i<10;i++) {
			new TestRun(ctrl);
		}
		ctrl.runTest(1);
		ctrl.runTest(2);
		ctrl.runTest(3);
		ctrl.runTest(4);
		ctrl.runTest(5);
		ctrl.runTest(6);
	}

}

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Ах да, ключики JVM: -Xmx1000000000 -Xms256000000. Если -Xmx не указать, солярис полностью заваливает 4-й тест - я успел сходить в магазин и покурить, а он всё работал и работал. На линуксе и виндах такого не было :-)

no-dashi ★★★★★
()

Как там со свежестью версий ПО и где можно посмотреть доступное ПО?

neocrust ★★★★★
()
Ответ на: комментарий от no-dashi

Сегодня специально написал чистую синтетику и прогнал её на трех одинаковых виртуалках.

Спасибо за тест!

Вопрос: (теоретически) может ли ВМ «просаживать» гостевые ОС в разной степени?

yyk ★★★★★
()
Ответ на: комментарий от no-dashi

Но не рекомендуемый из-за низкой производительности при существовании альтернатив, которые лучше всегда

vertexua ★★★★★
() автор топика
Ответ на: комментарий от yyk

Вопрос: (теоретически) может ли ВМ «просаживать» гостевые ОС в разной степени?

Ответ (практический) - не в этом случае. Если бы здесь велся I/O - да, наличие паравиртуальных драйверов было бы актуальным. Но тут строго память и процессор, и в HVM-домене.

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Ну для полноты картины неплохо бы ещё каких хамелеонов прогнать.

yyk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.