Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873

Не падающий сервер

14.01.2015, 14:40. Показов 4889. Ответов 84
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собираюсь писать сервер, который должен выдерживать ~100 запросов в секунду
Каждый запрос будет обращаться к бд раза 3-4, писать в файл и отдавать небольшой(пару строк) ответ.
Писал однажды маленький чатик по технологии comet, когда скрипт висел в памяти, пока в бд не произойдет изменение. И получалось, если больше 2 человек пользовались этим чатом, то сайт падал.
Он у меня был на бесплатном хосте radyx, но меня все равно это насторожило.
Прошу объяснить технологию, как написать не падающий сервер.

И несколько вопросов
Возможно ли хранить массив в памяти, который будет доступен каждый раз, при выполнении скрипта? Что бы уменьшить количество обращений в бд.
Какие примерно нужны параметры у хостинга, под мои запросы? и сколько такой хостинг может стоить? обращаться к серверу будут только из СПб. Есть ли смысл искать хостинг, расположенный в СПб, чтобы ускорить процесс доступа?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2015, 14:40
Ответы с готовыми решениями:

падающий снег
помогите мне нарисовать в делфи падающий снег.я не особо шарю в делфи т.к. юзаю си.кто может помогите.заранее спасибо.

Падающий снег
Помогите нарисовать падающий снег . У меня на форме нарисованый домик, ёлка.... нада только падающий снег.... я пробовал нарисовать...

падающий мяч
допустим бросили мячь с высоты 100пикселей написать задачу используя формулы S=v*t, H =100-9.81* t * t/2 после падения мячь должен...

84
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
16.01.2015, 14:06
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от spydark91 Посмотреть сообщение
сколько всего сообщений загружено
не вижу где записывается число туда.
Цитата Сообщение от spydark91 Посмотреть сообщение
Просто хочется понять свои ошибки
как минимум ошибка в том, что в msg_all у вас число сообщений, а проверка по ид, к тому же даже без сортировки, если делать выборку select то нет ни какой гарантии порядка выводимых строк, чем больше сообщений будет, тем чаще станет вывод строк не по порядку.

Цитата Сообщение от spydark91 Посмотреть сообщение
в js функции refresh()
я вижу там получение жсон в msg а всё, а дальше что?
а судя по пхп, в этом жсон даже нет в ответе нового количества сообщений и ли что правильней ласт ид.
0
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
16.01.2015, 14:12  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
имхо не самый удачный выбор.
а почему нет?
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
и вам отличная кросбраузерность
а при чем тут кроссбраузерность? ведь это серверная часть

Добавлено через 3 минуты
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
я вижу там получение жсон в msg а всё, а дальше что?
просто не хотел загромождать
писал я это пару лет назад и, если честно не особо помню как там все устроено
но до того как упасть, все работает нормально
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
if (req.readyState==4 && req.status==200) {  
               msg = JSON.parse(req.responseText);
               u=document.getElementById("msg_all").value;
               o=parseInt(u)+parseInt(msg.v);
               document.getElementById("msg_all").value=o;
               t=0;
               for (i=0;i<msg.cc;i++) {
 
                    color="#edf0f5;";    
                    if (msg.msg[i].name!=document.getElementById("user_Name").value) {
                        color="red;";
                        document.getElementById("n_m_c").style.color="#ccc";
                        document.getElementById("n_m").style.color="red";
                        document.getElementById("n_m").innerHTML=parseInt(document.getElementById("n_m").innerHTML)+1;
                    }
                    if (msg.msg[i].s==1) {
                        msg.msg[i].name="<font color=blue>"+msg.msg[i].name+"</font>";
                    }
                    addString="<table class=1 onMouseMove=readMsg(this); style=margin-bottom:3px;background:"+color+"width:100%><tr><td width=10%><b>";               
                    addString=addString+msg.msg[i].name+":</b></td><td>"+msg.msg[i].text+"</td></tr></table>";
                    document.getElementById("frame").innerHTML=addString+document.getElementById("frame").innerHTML; 
                    t++;    
               }
               document.getElementById("loaded_msg").value=parseInt(document.getElementById("loaded_msg").value)+t;
               setTimeout("document.getElementById(s).click();", 500);    
               
              
           }
Добавлено через 1 минуту
я тогда почти все переменные называл не осмысленно и теперь сам ничего не понимаю почти..
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
16.01.2015, 14:18
Цитата Сообщение от spydark91 Посмотреть сообщение
а почему нет?
Я не знаток явы, но я наслышан о её требовательности к ресурсам.
Я как то сталкивался с сервером на яве и на с++ для одной и той де игрушки, так вот сервер на яве кушал гораздо больше ресурсов.

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

Само собой может Вы напишите такой код, котоырй будет быстро работать и мало кушать памяти, в конце концов на чатик думаю гораздо меньше кода нужно чем в сервере для мморпг
Но просто хотелось бы услышать хоть одно преимущество для написания веб приложения на яве.

ps Писал выше, и в третий раз напишу мой выбор нод жс, есть хорошая библиотека socket.io которая поддерживает большинсво, если не все браузеры.
Откройте мануал http://socket.io/docs/
Пример серверного и клиентского кода. Есть куча готовых примеров чата.
Работает достаточно быстро, памяти практически не жрёт.
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
16.01.2015, 14:23
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Ну даже если как цги, чатик как сделан? память нужна только для 1го действия, сообщить всем юзерам которые висят в ожидании, что пришло новое сообщение.
То есть пхп скрипты для них запущены. А по Вашим словам если хоть 1 запущен, то память не очиститься
Так что для чатика этот способ будет работать.
Лучше посмотри мой код, он будет работать в любых конфигурациях в которых нет явного запрета shmop (например под виндой оно работать не будет). quwy пишет полную ахинею не разбираясь в вопросе =)

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Я не знаток явы, но я наслышан о её требовательности к ресурсам.
Самая крутая и быстрая IDE для PHP, Java и еще пары языков написана на Java. И не требует она каких-то бешенных ресурсов: люди работают с ней на обычных компьютерах.
0
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
16.01.2015, 14:26  [ТС]
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Писал выше, и в третий раз напишу мой выбор нод жс, есть хорошая библиотека socket.io которая поддерживает большинсво, если не все браузеры.
Не понимаю, при чем тут браузеры. Ведь клиент может быть и не в виде браузера ( у меня клиент будет не браузер)
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
16.01.2015, 14:27
spydark91, давайте конкретнее. Что вы пишите?
0
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
16.01.2015, 14:32  [ТС]
Цитата Сообщение от Tatikoma Посмотреть сообщение
давайте конкретнее. Что вы пишите?
В двух словах:
Клиент - приложение на телефоне, которое шлет свои координаты на сервер и получает от сервера список других координат и отображает точки на карте.
Сервер - все это дело обрабатывает.

Добавлено через 1 минуту
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
http://fastvps.ru/vds/ 3 евро не так и много
а тут можно будет на jave писать? а то там об этом ни слова..
0
Native x86
Эксперт Hardware
 Аватар для quwy
6859 / 3791 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
16.01.2015, 14:40
DrobyshevAlex, да, не вдумался в условия задачи. Тут согласен. Раз все висят в перманентном ожидании, то ничего невозможного нет. Но это все равно частный случай.

Цитата Сообщение от spydark91 Посмотреть сообщение
на vpn надо будет ставить jvm?
Да, и в этом нет никакой проблемы. VPS -- это ваш личный экземпляр операционной системы. Вы вольны ставить туда все, что угодно.
1
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
16.01.2015, 14:48
Цитата Сообщение от Tatikoma Посмотреть сообщение
например под виндой оно работать не будет
Почему?

Цитата Сообщение от Tatikoma Посмотреть сообщение
амая крутая и быстрая IDE
Нет эклипс ли? который я снёс в первый же день)) и поставил нотепад++
Андроид студия тоже на яве написана, и работает сама по себе не плохо, и мне больше эклипса нравится
Но давайте не будем возвращаться к сарвнению приоры и ниссана гтр
Сравниваем не ИДЕ а чат

Я вам предлагал уже, пишите крос браузерный чатик на яве, пхп или ещё чём то, а я на нод жс.
Потом сравним скорость и память
Кто проиграет с того тортик))
Цитата Сообщение от spydark91 Посмотреть сообщение
у меня клиент будет не браузер
Об этом где то выше написано?) Это Форум web-программистов
Так что такое нужно сразу указывать) Все мои рассуждения в данном топике касались кросбраузерного чатика

Тогда я бы на с++ писал)) А Вообще, вот самое лучшее, это пистаь на том на чём можете

Цитата Сообщение от spydark91 Посмотреть сообщение
а тут можно будет на jave писать? а то там об этом ни слова..
А Какая разница на чём писать? Там онлайн поддержка снизу справа чатик, спросите.
имхо это впс, ставьте что хотите что закону не противоречит, лишь бы хватило ресурсов.

Цитата Сообщение от spydark91 Посмотреть сообщение
Клиент - приложение на телефоне, которое шлет свои координаты на сервер и получает от сервера список других координат и отображает точки на карте.
Сервер - все это дело обрабатывает.
Месяц назад писал под иос))
Писал клиента на обектив си, сервер на нод жс
Писал бы на яве, если бы не нужно было АПИ для браузера) А так убил двух зайцев, сокет ио прекрасно работает на мобилке, и на нод жс, в результате получаем один сервер и для мобилок и для браузеров если понадобиться
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
16.01.2015, 14:52
quwy, нет никакой необходимости держать какой-либо процесс PHP запущенным для работы с shared memory. Вы можете записать память и завершить процесс - shared memory никуда от этого не денется, она одна на всю систему. В том числе вы можете подключаться к ней из других приложений на других языках программирования.

Цитата Сообщение от spydark91 Посмотреть сообщение
а тут можно будет на jave писать? а то там об этом ни слова..
Вам понадобятся навыки администрирования *nix-серверов. Вкратце все выглядит очень просто - при заказе выбирается предустановленную систему (например Debian) - получаете в письме логин/пароль от учетной записи root. Подключаетесь с этой учеткой по ssh и ставите нужные пакеты через apt-get. Вся информация легко обнаруживается в гугле.

Цитата Сообщение от spydark91 Посмотреть сообщение
В двух словах:
Клиент - приложение на телефоне, которое шлет свои координаты на сервер и получает от сервера список других координат и отображает точки на карте.
Сервер - все это дело обрабатывает.
Как часто клиент шлет эти запросы?
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
16.01.2015, 14:53
Собственно вот такую штуку делали, но дизайнер пропал))
Миниатюры
Не падающий сервер   Не падающий сервер  
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
16.01.2015, 14:54
Tatikoma, Так а почему Вы говорите что на виндовсе не будет работать?
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
16.01.2015, 14:55
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
например под виндой оно работать не будет
Почему?
Потому что я вру. Будет работать, невнимательно читал документацию (у меня вообще плохо получается запоминать особенности Windows, т.к. не приходиться иметь с ним дела уже очень давно). Суть в том, что quwy неправ утверждая про необходимость держать что-то запущенным, но кажется он меня действительно игнорирует.

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Нет эклипс ли? который я снёс в первый же день)) и поставил нотепад++
Нет, я говорю про IDE на платформе IntelliJ. Посмотрите опросники какая IDE (блокнот - не IDE) лучше, убедитесь в том, что я не обманываю =)

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Я вам предлагал уже, пишите крос браузерный чатик на яве, пхп или ещё чём то, а я на нод жс.
Потом сравним скорость и память
Ради выигрывания одного тортика я не буду расчехлять навыки программирования на ассемблере intel x86 )

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Это Форум web-программистов
Глупости, откуда вы это взяли? "CyberForum.ru - форум программистов и сисадминов".
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
16.01.2015, 15:01
Цитата Сообщение от Tatikoma Посмотреть сообщение
Потому что я вру. Будет работать, невнимательно читал документацию
Где то на первой странице я кидал код, с шаред мем, всё дело в том что под виндовс работает через веб сервер, но с консоли действительно память очищается Даже 777 права ставил
Ваш код тоже не работает из консоли, по крайней мере под виндовс. Только чреез веб сервер)

Цитата Сообщение от Tatikoma Посмотреть сообщение
Ради выигрывания одного тортика я не буду расчехлять навыки программирования на ассемблере intel x86 )
Я ассемблер тоже знаю, пришлось изучить кода писал под МК)) Но не кто за него не говорил, мне не сложно на ноде написать, 20-30 строк кода. На яве дольше?

Цитата Сообщение от Tatikoma Посмотреть сообщение
Глупости, откуда вы это взяли?
Глаза поднимите Я про конкретный раздел форума.
0
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
16.01.2015, 15:01  [ТС]
Серверу же всеравно откуда шлют к нему запрос. Пришел на 80 порт и хорошо. Какая разница java или node js в плане того, что будет или не будет работать и там и там. Просто разные отаеты на запросы получатся, разве не так?
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
16.01.2015, 15:06
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Где то на первой странице я кидал код, с шаред мем, всё дело в том что под виндовс работает через веб сервер, но с консоли действительно память очищается Даже 777 права ставил
Ваш код тоже не работает из консоли, по крайней мере под виндовс. Только чреез веб сервер)
А, ну значит я был прав, что оно под виндой работать не будет. Под *nix все будет работать как положено. Я просто не сразу понял почему оно под виндой работать не будет. Оказывается дело в том, что винда кривая, поэтому оно там работать не будет )))

spydark91, почему разные ответы? - Ответы как раз одинаковые, это всего лишь байтики которые можно на любом языке программирования сгенерировать и отправить.
Серверу не совсем всё равно откуда пришел запрос, есть свои ньюансы (почитайте например про атаку Slowloris на Apache, - как раз из-за того что не всё равно). Соответственно при правильной архитектуре приложения будет действительно без разницы.

Вы не ответили на вопрос, - как часто приходят запросы от одного и того же клиента?
0
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
16.01.2015, 15:08
Цитата Сообщение от spydark91 Посмотреть сообщение
Пришел на 80 порт и хорошо
Ну так 80 порт то зачем? 80 порт предназначен для HTTP как правило, не хотите хттп, юзайте другой порт, оставьте 80 для веб сервера, вдруг сайтик нужно поднять

Цитата Сообщение от spydark91 Посмотреть сообщение
Какая разница java или node js в плане того, что будет или не будет работать и там и там. Просто разные отаеты на запросы получатся, разве не так?
Не могли бы цитировать на что вы пишите? А то не совсем понятно
Если про то что я делал на ноде для сайта и приложения - то я сказал лишь то, что если юзать хттп, и нужно для сайта, возвращаемся к кросбраузерности, возвращаемся к удобсву сокет.ио, а оно работает и под мобилки и под браузер. получается код один, для мобилки и сайта, не нужно не однйо строки лишней писать в сервере. А результат мало кода, кросбраузерность.

Не по теме:

Пишите на Java :) Сколько вы обсуждаете, уже можно было сервер написать на том что знаете :) За два дня обсуждений этой темы я попутно на плюсах успел сервер написать :)



Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Tatikoma Посмотреть сообщение
Оказывается дело в том, что винда кривая, поэтому оно там работать не будет
Ну так винду пиcали только для того, что бы IE было где работать :)

0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
16.01.2015, 15:10
Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Глаза поднимите Я про конкретный раздел форума.
А где тогда предлагаете задавать вопросы желающим заниматься на PHP не только веб-программированием? =)

Цитата Сообщение от DrobyshevAlex Посмотреть сообщение
Если про то что я делал на ноде для сайта и приложения - то я сказал лишь то, что если юзать хттп, и нужно для сайта, возвращаемся к кросбраузерности, возвращаемся к удобсву сокет.ио, а оно работает и под мобилки и под браузер. получается код один, для мобилки и сайта, не нужно не однйо строки лишней писать в сервере. А результат мало кода, кросбраузерность.
Ну у каждого своё удобство, - никто не мешает отказаться от написания своего сервера подключив свой код по fastcgi к nginx. Всё будет летать и можно будет сосредоточиться на логике работы, а не тонкостях веб-сервера.
0
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
16.01.2015, 15:15  [ТС]
Как часто клиент шлет эти запросы?
каждые секунд ~10, в общем чтобы более менее реал тайм было

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

В общем походу буду на яве)
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
 Аватар для Tatikoma
260 / 224 / 109
Регистрация: 07.07.2014
Сообщений: 965
16.01.2015, 15:19
Цитата Сообщение от spydark91 Посмотреть сообщение
Клиент - приложение на телефоне, которое шлет свои координаты на сервер и получает от сервера список других координат и отображает точки на карте.
Сервер - все это дело обрабатывает.
Цитата Сообщение от spydark91 Посмотреть сообщение
Как часто клиент шлет эти запросы?
каждые секунд ~10, в общем чтобы более менее реал тайм было
Т.е. подождите, вся задача сервера - это послать запрос в СуБД и вывести ответ, я правильно понимаю?..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.01.2015, 15:19
Помогаю со студенческими работами здесь

Падающий снег
Здравствуйте! При загрузке скрипта снежинки появляются по высоте окна браузера, потом летят до конца страницы. Хочу переделать, чтобы...

Падающий снег
Подскажите, пожалуйста, где я ошиблась. На форме программе должен отображаться падающий снег, как на рисунке. Почему-то у меня вообще...

Падающий текст
Добрый день! Как сделать падающий текст и изменение его скорости по нажатию на стрелку? Движение и позиция текста: void...

падающий квадрат
Помогите сделать падающий квадрат ) самый простой InitializeComponent(); public struct Size for (i = 0; i...

Падающий снег
Делаю падающий снег поверх картины. Как сделать так, что бы снежинки не оставляли за собой след?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru