
Командные соревнования по компьютерной безопасности CTF для школьников Москвы и МО 12 октября, ВМК МГУ
Командные соревнования по компьютерной безопасности CTF для школьников Москвы и МО 12 октября, ВМК МГУ
Добавление к предыдущим постам. Поставил на машину с SSD mysql сервер, потестил innodb. Параметры innodb дефолтные для 5.6. Поставил лишь
innodb_log_buffer_size=500M
innodb_buffer_pool_size=1G
Пробовал O_DIRECT, с ним немного медленнее, убрал. Такая же таблица на 2,5 млн, такие же дефолтные параметры sysbench, такое же железо (на самом деле тестил на датаноде, там всё равно нагрузки сейчас нет никакой).
Результаты:
[user@localhost ~]$ sysbench --num-threads=100 --max-requests=100000 --oltp-table-size=2500000 --mysql-host=my_host --mysql-db=my_test --mysql-user=test --db-driver=mysql --test=oltp run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 100000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 1400476
write: 500170
other: 200068
total: 2100714
transactions: 100034 (2210.84 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 1900646 (42005.92 per sec.)
other operations: 200068 (4421.68 per sec.)
Test execution summary:
total time: 45.2471s
total number of events: 100034
total time taken by event execution: 4522.8856
per-request statistics:
min: 3.19ms
avg: 45.21ms
max: 948.74ms
approx. 95 percentile: 94.73ms
Threads fairness:
events (avg/stddev): 1000.3400/23.82
execution time (avg/stddev): 45.2289/0.01
Как видно, даже немного лучше кластера. top на хосте показывает чуть более 395% нагрузки процессора.
Забыл в предыдущих хостах конфиги кластера.
my.cnf (только [mysqld], [client] и другое не привожу):
[mysqld]
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
port=3306
basedir=/usr
log-error=/var/log/mysqld/mysqld.53.err
expire_logs_days=10
datadir="/var/lib/mysql"
tmpdir=/tmp
ndbcluster=on
ndb-nodeid=53
ndb-connectstring=<ip адрес ndb_mgmd>:1186
ndb-cluster-connection-pool=4
#autocommit=off
ndb-force-send=0
ndb-use-exact-count=0
ndb-batch-size=64M
ndb-autoincrement-prefetch-sz=1024
default-storage-engine=ndbcluster
В некоторых манах советуют отключать автокоммит, чтобы он группировал транзакции. Видимо, это я не осилил (работало с моим конфигом ещё медленнее + глючило). Соответственно, ndb-batch-size и ndb-forse-send по идее игнорируются
config.ini:
[NDB_MGMD DEFAULT]
Portnumber=1186
[NDB_MGMD]
NodeId=49
HostName=<ip management ноды>
DataDir=/data/Cluster/49/
Portnumber=1186
[TCP DEFAULT]
SendBufferMemory=4M
ReceiveBufferMemory=4M
[NDBD DEFAULT]
BackupMaxWriteSize=1M
BackupDataBufferSize=16M
BackupLogBufferSize=4M
BackupMemory=20M
BackupReportFrequency=10
MemReportFrequency=30
LogLevelStartup=15
LogLevelShutdown=15
LogLevelCheckpoint=8
LogLevelNodeRestart=15
DataMemory=3600M
IndexMemory=750M
MaxNoOfTables=2048
MaxNoOfTriggers=2048
MaxNoOfOrderedIndexes=1024
MaxNoOfAttributes=2048
NoOfReplicas=2
StringMemory=25
DiskPageBufferMemory=64M
MaxNoOfConcurrentTransactions=16384
MaxNoOfConcurrentOperations=100000
BatchSizePerLocalScan=512
FragmentLogFileSize=256M
NoOfFragmentLogFiles=22 # 6xDataMemory [in MB]/(4 *FragmentLogFileSize [in MB]
RedoBuffer=32M
MaxNoOfExecutionThreads=4
StopOnError=false
LockPagesInMainMemory=1
SharedGlobalMemory=256M #default 128
TransactionDeadlockDetectionTimeout=52000
[NDBD]
NodeId=1
HostName=<ip первой датаноды>
DataDir=/data/Cluster/1/
[NDBD]
NodeId=2
HostName=<ip второй датаноды>
DataDir=/data/Cluster/2/
[MYSQLD DEFAULT]
[MYSQLD]
NodeId=53
HostName=<ip mysql сервера>
[MYSQLD]
[MYSQLD]
[MYSQLD]
Пустые секции mysql - для подключения в несколько потоков.
По I/O пока ничего не скажу, кроме того, что при тесте на один хост с innodb iotop показывает циферки побольше раза в 2 (около 40 M/S), чем при тесте кластера . Надеюсь, поставлю мониторинг датанод, можно будет посмотреть графики/статистику, не только с количеством записанного, но и с tps за всё время теста.
В итоге сейчас результаты примерно одинаковые, что для 1 innodb, что для кластера из 4х нод. При этом датаноды и по CPU, и по IO загружены примерно на половину возможного, а mysql серверы загружаются на полную.
добавил ещё один sql server, стало лучше:
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 100000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 1400014
write: 500005
other: 200002
total: 2100021
transactions: 100001 (2468.02 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 1900019 (46892.43 per sec.)
other operations: 200002 (4936.05 per sec.)
Test execution summary:
total time: 40.5187s
total number of events: 100001
total time taken by event execution: 4050.0806
per-request statistics:
min: 20.94ms
avg: 40.50ms
max: 253.15ms
approx. 95 percentile: 51.15ms
Threads fairness:
events (avg/stddev): 1000.0100/68.53
execution time (avg/stddev): 40.5008/0.01
Посмотрел на результаты того, что даёт собранный из подручных средств кластер. Подручные средства примерно такие:
процессоры на нодах одинаковые: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
mysql server: 8Gb RAM, какой-то жесткий из ноута
datanode: 12 Gb RAM (на самом деле можно меньше), какой-то SSD (лень устанавливать hdparm и смотреть, что там (а тем более идти в офис))
Датанод 2, сервер 1 + не самый дорогой роутер TPlink на гигабит. Запустил sysbench с дефолтными параметрами и размером таблицы в 2,5 млн записей (остальные параметры видно в выводе):
Running the test with following options:
Number of threads: 100
Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 100000
Threads started!
Done.
OLTP test statistics:
queries performed:
read: 1400140
write: 500050
other: 200020
total: 2100210
transactions: 100010 (1596.21 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 1900190 (30327.94 per sec.)
other operations: 200020 (3192.42 per sec.)
Test execution summary:
total time: 62.6548s
total number of events: 100010
total time taken by event execution: 6262.6459
per-request statistics:
min: 17.83ms
avg: 62.62ms
max: 793.49ms
approx. 95 percentile: 132.30ms
Threads fairness:
events (avg/stddev): 1000.1000/21.71
execution time (avg/stddev): 62.6265/0.01
Сейчас сервер mysqld по CPU загружен на полную (375-380% в top), а датаноды загружены чуть больше, чем на четверть (ndbmtd показывает 140% в top).
Может быть, в скором времени покажу результаты в нормальной сети и на другом железе.
openvpn для рабочего окружения сделал. Довольно стабильно и удобно. Weltschmerz, спасибо.
Теперь другой вопрос. Как делать репликацию: поверх vpn или использовать встроенное шифрование ( http://dev.mysql.com/doc/re...n-solutions-ssl.html )? Мне кажется неплохим второй вариант.
http://juick.com/duckling/2743476
хоть регистрируйся //на самом деле нет, не надо там регистрироваться.
http://pgday.ru/ru
Приглашают посетить PG Master'14 бесплатно (в Питере).
Допустим, у вас убунта и вы хотите поставить личкрафты. Более того, вы хотите новую версию из гита. Если вы настолько извращенец, скорее всего, у вас уже есть libboost-dev-all и всяческие libqt. Но с libqt из убунты личкрафт порадует вас падениями, логами на несколько гигабайт (а точнее, на столько, сколько доступно в /home) и прочими маленькими радостями вроде загрузки пары ядер на максимум или около того. Поэтому лучше скачать qt (в trusty сейчас 4.8.5, я скачивал такое же), распаковать, сконфигурировать примерно так:
./configure -qt-sql-sqlite -qt-sql-mysql -opensource -multimedia
и собрать@установить через make -j (ваше любимое натуральное число) && make install.
Если хотите всё делать через эту версию, а не через системную, надо добавить в /etc/xdg/qtchooser/default.conf строки
/usr/local/Trolltech/Qt-4.8.5/bin
/usr/local/Trolltech/Qt-4.8.5/lib
написать где-нибудь в /home/user/.profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Trolltech/Qt-4.8.5/lib/:/usr/local/lib/
В мане вы видите простое решение для установки всех зависимых пакетов для накатывания:
sudo add-apt-repository ppa:tehnick/leechcraft-unstable
sudo apt-get update
sudo apt-get build-dep leechcraft-unstable
но в реальной жизни оно не работает (может быть, у меня кривые руки). Если желание очень велико и это не помеха, можно установить примерно следущее:
sudo apt-get install apt-file qtmobility-dev libspeex-dev libpoppler-qt4-dev libpoppler-cpp-dev libxkbfile-dev libvlc-dev libqca2-dev libnl-dev libnl-route-3-dev libnl-3-dev libxcomposite-dev libxrender-dev libtidy-dev
(первое может понадобиться, если я что-то забыл и надо найти пакет, в котором содержится нужный файл (конечно, надо обновить базу, как это советуют после установки))
и затем уже по привычной схеме:
git clone git://github.com/0xd34df00d/leechcraft.git
cd leechcraft
сmake -DUSE_QT5=False -DCMAKE_BUILD_TYPE=debug -DENABLE_SYNCER=False -DENABLE_MUSICZOMBIE=False -DENABLE_ELEEMINATOR=False -DENABLE_POLEEMERY=False -DENABLE_OTLOZHU_SYNC=False -DENABLE_AZOTH_OTROID=True ./src/
make -j (ваше любимое натуральное число)
как вы могли заметить, в опциях cmake отключены ненужные (т.е. те, которые я не осилил собрать с минимальными усилиями).
Возможно, даже после установки пакетов будет ругань на отсутствующие файлы. Тут можно или переписывать сырцы, или костылять у себя на системе как-то так:
sudo ln -s /usr/include/libnl3/netlink/ /usr/include/netlink
После компиляции можно наконец-то приблизить сделать свою систему чуть более похожей на божественную слаку командой make install и пользоваться личкрафтами с неработающим выходом (у нас есть killall!), неработающим скрыванием/показом окна, падениям по странным обстоятельствам и неработающей иконке в трее, которой по идее должен обеспечиваться выход и скрывание/показ окна (с qt от убунту это работает, можете пользоваться, если вам не мешают указанные выше мелочи).
enjoy your ubuntu with leechcraft.
передайте сюда, кто может, -> http://juick.com/duckling/2738117
http://mathgifs.blogspot.ru.../conformal-maps.html
(взято у 4da)
зачем пилить жручие костыли и уровни абстракции, когда ты точно знаешь, где что надо сделать с памятью? только чтобы не "пачкать руки"? пидарас ты, а не программист. погоны то не позорь, хули ты напялил.
Usually, Windows will not be able to boot, unless you copy, move or restore NTFS to the same partition which starts at the same sector on the same type of disk having the same BIOS legacy cylinder setting as the original partition and disk had.
удобно
http://cdn.oreillystatic.co...ial Presentation.odp хорошая презентация про всё (установка, запуск, бэкапы, немного про внутренности)
Скажите, действительно ли плохо с точки зрения безопасности оставлять открытым наружу порт mysql для разработчиков? Лучше ли, если сделано bind-address=localhost и подключение идёт через ssh -L 3307:localhost:3306 user@host -> mysql -P 3307 -h 127.0.0.1?
Мне говорят, что какой бы ни был открытый порт mysql (даже если там прописан bind-address=localhost, юзеры ограничены парой баз и у них нет grant privileges), если он торчит наружу, это небезопасно. Хотят vpn.
Weltschmerz, выскажи, пожалуйста, своё авторитетное мнение.