FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение thefree » 2011-02-02 10:38:16

Доброго дня пользователи форума lissyara.su!
Возник у меня вопрос есть VDS/VPS c памятью 64mb, Intel(R) Core(TM) i7 CPU 930 @ 2.80GHz (2806.98-MHz 686-class CPU) и все это работает под Xen Virtualization.
Стоит там вот такая ось

Код: Выделить всё

uname -a
FreeBSD 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:55:53 UTC 2010     root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
, установлена в минималке (kernel,base,man).
Возник вопрос а как бы оптимизировать все это, что бы ела мало памяти.
Сразу и огласим задачи, vds должна быть ns'ом для 3-7 зон (мастер), поддерживать php+perl (cgi)+mysql c онлайном в 20ть пользователей. С примерным запросом к mysql, 700-1500 на select, 450+ на update, 70-160 на delet и всё это в минуту. таблица у меня одна.

И еще одна шизофреничка как идея, я не хочу пересобирать ядро. Да-да-да (: как-то так!
Почитал http://www.lissyara.su/articles/freebsd/tuning/vds/ , погуглил.

И приступил к работе, вот что я уже сделал (если есть замечания, поправляйте).

1) загнал ssh в inetd что бы не стаял как постамент. Работаю я из под рута, других пользователей не намечается.

2) Для работы с портами я выбрал portmaster т.к. он не тянет зависимостей и работает на sh.
Собран он в духе

Код: Выделить всё

cat /var/db/ports/portmaster/options
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for portmaster-3.6.1
_OPTIONS_READ=portmaster-3.6.1
WITHOUT_BASH=true
WITHOUT_ZSH=true
3) Для веба мой выбор всегда был lighttpd на нём и остановился т.к. там cgi из коробки. Собран в духе

Код: Выделить всё

cat /var/db/ports/lighttpd/options
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for lighttpd-1.4.28_4
_OPTIONS_READ=lighttpd-1.4.28_4
WITHOUT_BZIP2=true
WITHOUT_CML=true
WITHOUT_FAM=true
WITHOUT_GDBM=true
WITHOUT_IPV6=true
WITHOUT_LIBEV=true
WITHOUT_MAGNET=true
WITHOUT_MEMCACHE=true
WITHOUT_MYSQL=true
WITHOUT_MYSQLAUTH=true
WITHOUT_NODELAY=true
WITHOUT_OPENLDAP=true
WITH_OPENSSL=true
WITHOUT_SPAWNFCGI=true
WITHOUT_VALGRIND=true
WITHOUT_WEBDAV=true
4) все собиралось вот с таким /etc/make.conf

Код: Выделить всё

cat /etc/make.conf
CFLAGS=-O2 -pipe -funroll-loops
NO_GAMES=true          # do not build games (games/ subdir)
NO_INET6=true          # do not build IPv6 related programs and libraries
WITHOUT_IPV6=yes
WITHOUT_X11=yes
WITHOUT_SAMBA=yes
WITHOUT_CUPS=yes
NO_GUI=yes
NO_X11=yes
NO_X=yes
NO_PROFILE=true
5) посмотрев ps auxwww увидел демоны moused и devd и пошел ковырять rc.conf, вот что получилось.

Код: Выделить всё

inetd_enable="YES"
ntpdate_enable="YES"
ntpdate_hosts="news.demos.su"
moused_nondefault_enable="NO"
devd_enable="NO"
firewall_enable="YES"
firewall_logging="YES"
firewall_script="/etc/ipfw.firewall"
named_enable="YES"
named_flags="-4 -n 1"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
syslogd_flags="-4 -ss"
accounting_enable="YES"
fsck_y_enable="YES"
icmp_drop_redirect="YES"
tcp_drop_synfin="YES"
tcp_restrict_rst="YES"
6) настройка bind

Код: Выделить всё

        forward only;
        forwarders { 8.8.8.8; 8.8.4.4; };
        recursion no;
        allow-update { none; };
        allow-recursion { none; };
        allow-transfer { none; };
, ума не приложу что еще можно покурить.

в догонку

Код: Выделить всё

ps auxwww
USER   PID %CPU %MEM   VSZ   RSS  TT  STAT STARTED      TIME COMMAND
root    11 99,4  0,0     0     8  ??  RL   11:03   1393:09,24 [idle]
root     0  0,0  0,0     0    48  ??  DLs  11:03     0:00,04 [kernel]
root     1  0,0  0,2  2912   488  ??  ILs  11:03     0:00,00 /sbin/init --
root     2  0,0  0,0     0     8  ??  DL   11:03     0:02,14 [g_event]
root     3  0,0  0,0     0     8  ??  DL   11:03     0:02,08 [g_up]
root     4  0,0  0,0     0     8  ??  DL   11:03     0:07,64 [g_down]
root     5  0,0  0,0     0     8  ??  DL   11:03     0:00,00 [sctp_iterator]
root     6  0,0  0,0     0     8  ??  DL   11:03     0:00,00 [xpt_thrd]
root     7  0,0  0,0     0     8  ??  DL   11:03     0:00,05 [pagedaemon]
root     8  0,0  0,0     0     8  ??  DL   11:03     0:00,00 [vmdaemon]
root     9  0,0  0,0     0     8  ??  DL   11:03     0:00,00 [pagezero]
root    10  0,0  0,0     0     8  ??  DL   11:03     0:00,00 [audit]
root    12  0,0  0,0     0   120  ??  WL   11:03     1:45,28 [intr]
root    13  0,0  0,0     0     8  ??  DL   11:03     0:02,67 [yarrow]
root    14  0,0  0,0     0    32  ??  DL   11:03     0:02,13 [usb]
root    15  0,0  0,0     0     8  ??  DL   11:03     0:00,28 [bufdaemon]
root    16  0,0  0,0     0     8  ??  DL   11:03     0:03,48 [syncer]
root    17  0,0  0,0     0     8  ??  DL   11:03     0:00,26 [vnlru]
root    18  0,0  0,0     0     8  ??  DL   11:03     0:00,21 [softdepflush]
root    19  0,0  0,0     0     8  ??  DL   11:03     0:00,04 [flowcleaner]
root   516  0,0  0,0     0     8  ??  DL   11:03     0:00,03 [accounting]
root   551  0,0  0,5  3348  1240  ??  Ss   11:03     0:00,10 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -4 -ss
bind   636  0,0  4,1 15388 10140  ??  Is   11:03     0:00,62 /usr/sbin/named -4 -n 1 -t /var/named -u bind
root   917  0,0  0,5  3376  1368  ??  Ss   11:03     0:00,12 /usr/sbin/cron -s
root   950  0,0  0,6  3408  1492  ??  Is   11:03     0:00,00 /usr/sbin/inetd -wW -C 60
root  3473  0,0  1,8  9428  4516  ??  Ss    9:20     0:00,19 sshd: root@pts/0 (sshd)
root   983  0,0  0,5  3348  1156  v0  Is+  11:03     0:00,00 /usr/libexec/getty Pc ttyv0
root  3476  0,0  1,3  5668  3276   0  Rs    9:21     0:00,03 -csh (csh)
root  3610  0,0  0,6  3428  1400   0  R+   10:22     0:00,00 ps auxwww
# pkg_info
gettext-0.18.1.1    GNU gettext package
gmake-3.81_4        GNU version of 'make' utility
libiconv-1.13.1_1   A character set conversion library
libtool-2.2.10      Generic shared library support script
lighttpd-1.4.28_4   A secure, fast, compliant, and very flexible Web Server
pcre-8.12           Perl Compatible Regular Expressions library
pkg-config-0.25_1   A utility to retrieve information about installed libraries
portmaster-3.6.1    Manage your ports without external databases or languages
vim-lite-7.3.81     Vi "workalike", with many additional features (Lite package
Что вы еще предложите (включить/выключить/покрутить)? сейчас ищу что-то на замену для sendmail (необходима только отправка писем, получать ли системные да же не знаю), думаю чем заменить bind т.к. эта умная штука очень прожорлива, думаю выкинуть sshd стандартный и перейти на dropbear, c mysql отдельная тема еще курю.

p.s. за орфографию и плохой литературный слоган прощу сразу прощения.
p.s.s ну и еще, это только практика и спортивный интерес мечта все это заставить работать на 32 мб ОЗУ.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение manefesto » 2011-02-02 12:10:07

никак тольком не оптимизируешь, 64 метра очень жестока.
ну во первых легкий апач, версии 1.3, во вторых...а хз что во вторых.
надо ставить 4ку и будет счастье, раньше софт меньше памяти кушал
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение thefree » 2011-02-02 17:59:21

информативно, зачем мне апач 1.3 если lighttpd намного лучше?
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
SomeBody
рядовой
Сообщения: 15
Зарегистрирован: 2010-12-23 12:59:48

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение SomeBody » 2011-02-02 23:25:28

А nginx для таких целий подходит ??? для экономии памяти ....

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение manefesto » 2011-02-03 7:25:09

nginx для простого сайта будет кушать больше чем апач.
проверено на своем роутере,процентов на 20 больше кушает.
я такой яростный шо аж пиздеЦ
Изображение

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение thefree » 2011-02-03 14:41:56

SomeBody писал(а):А nginx для таких целий подходит ??? для экономии памяти ....
нужен еще cgi ... в nginx его нету.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

neowisard
проходил мимо
Сообщения: 6
Зарегистрирован: 2011-02-07 14:19:15

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение neowisard » 2011-02-07 14:35:24

Режем кэш , вместо почты msmtp или ssmtp , думаем о Nginx (вчистую с fcgi) .
мускул только куда деть не понятно.
Память серьезно мала - будет забиваться апачем даже при 2 пользователях .( т.е. поисковик и ты ).((
Я бы сказал овчинка выделки не стоит - проще докупить память. (обычно это быстрее чем пересобрать ядро)

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение thefree » 2012-10-21 20:25:41

мой /etc/make.conf изменился

Код: Выделить всё

CFLAGS=-O2 -fno-strict-aliasing -pipe --param ggc-min-expand=0 --param ggc-min-heapsize=8192
NO_GAMES=yes

WITHOUT_GUI=yes
NO_GUI=yes

WITHOUT_X11=yes
NO_X11=yes
NO_X=yes

WITHOUT_SAMBA=yes
WITHOUT_CUPS=yes

NO_PROFILE=yes
WITHOUT_DEBUG=yes
BUILD_OPTIMIZED=yes
BUILD_STATIC=yes
# added by use.perl 2012-07-24 12:44:40
PERL_VERSION=5.16.0
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
Neus
капитан
Сообщения: 1780
Зарегистрирован: 2008-09-08 21:59:56

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение Neus » 2012-10-22 10:33:20

BUILD_STATIC=yes
это для экономии памяти?
в CFLAGS вместо -О2 попробуйте -Os
это вроде как оптимизация размера

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение thefree » 2012-10-24 11:29:42

ага, спс поправил.
посмотрим, сейчас

Код: Выделить всё

last pid: 56998;  load averages:  0.08,  0.06,  0.04                                                    up 78+01:43:35  12:18:52
17 processes:  1 running, 16 sleeping
CPU:  0.0% user,  0.0% nice,  0.0% system,  1.9% interrupt, 98.1% idle
Mem: 19M Active, 2024K Inact, 33M Wired, 1304K Cache, 21M Buf, 53M Free
Swap: 512M Total, 40M Used, 472M Free, 7% Inuse

  PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
94272 nobody      1  44    0  9016K  1764K select   5:07  0.00% znc
58969 mysql       6  44    0 20580K  3120K ucond    1:44  0.00% mysqld
 9584 bind        4  44    0 19500K  1432K kqread   1:24  0.00% named
  598 root        1  44    0  3300K   100K select   1:09  0.00% runsvdir
  463 root        1  44    0  3360K   380K select   0:27  0.00% syslogd
  783 root        1  44    0  3392K   372K nanslp   0:11  0.00% cron
43782 root        1  44    0  9532K  3092K select   0:01  0.00% sshd
  611 root        1  44    0  1564K   120K select   0:00  0.00% runsv
43735 root        1  44    0  9532K  3084K select   0:00  0.00% sshd
56916 www         1  44    0  6944K  3180K kqread   0:00  0.00% lighttpd
  800 root        1  44    0  3420K   256K select   0:00  0.00% inetd
43785 root        1  44    0  5724K  2972K pause    0:00  0.00% csh
43745 root        1  55    0  4700K  1584K pause    0:00  0.00% csh
58845 mysql       1  76    0  3680K     0K wait     0:00  0.00% <sh>
43747 root        1  44    0  6492K  1992K select   0:00  0.00% sftp-server
56998 root        1  44    0  3696K  1496K RUN      0:00  0.00% top
  822 root        1  76    0  3360K    16K ttyin    0:00  0.00% getty
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: FreeBSD на VDS/VPS 64mb Xen, как оптимизировать?!

Непрочитанное сообщение thefree » 2013-05-06 13:05:41

/var/db/mysql/my.cnf

Код: Выделить всё

[mysqld]
skip-external-locking
default-storage-engine = MyISAM
skip-innodb
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

character-set-server=utf8
init-connect='SET NAMES utf8;'
collation-server=utf8_unicode_ci

[mysqldump]
quick
quote-names
max_allowed_packet = 16M
character-set-server=utf8

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
character-set-server=utf8

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout

[client]
character-set-server=utf8
root@ ~> pkg_info | grep mysql
mysql-client-5.5.31 Multithreaded SQL database (client)
mysql-server-5.5.31 Multithreaded SQL database (server)
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету