Denis
gjl yfuheprjq &
Denis
под нагрузкой ?
Denis
http://joxi.ru/BA0bdxYuJO61Om
Anonymous
Anonymous
Мониторинг с сервера?
Denis
keymetrics
Denis
pm2
Анатолий
из-за синхронного кода
Анатолий
запросов/сек не много, по этому вариант с синхронным кодом наиболее очевидный
Denis
Ага, понял отказаться от jsonParse
Denis
там летит просто с запросом json который зашифрован еще
Анатолий
Строкой жсон обрабатывать будете?
Denis
там еще base64
Denis
сначала декодится
Анатолий
твои ноды только и делают что парсят жсон и все?
Denis
да, вот на 2 проца когда было но примерно столько же rpm на каждый
Denis
все лдетело
Denis
нет они к монге обращаются
Denis
и редису
Denis
при этом запросы к монге кешируются в редис
Denis
cachegoose
Анатолий
и потом полученные данные не обрабатываются?
Анатолий
фор может
Анатолий
преобразования
Анатолий
не, это мелочи
Анатолий
хотя от жсона зависит
Анатолий
Если большой то вполне
Denis
да дело в том что на php разруливается на ура
Denis
эта же нагрузка
Denis
в ответ потом еще упаковыевыается
Анатолий
Denis
ага
Denis
на 4 проца 12к рпм
Denis
в районе 300 rps
Анатолий
нагрузка мизерная, дело в обработке данных
Anton
там не 3к рпс, а 3к рпм
ааа, не увидел. ну тогда жсон должен быть жирный довольно или сделано херновов что-то
Анатолий
а вообще нода за сколько отдает ответ?
Denis
там есть упаковка большого JSON
Анатолий
именно время обработки хттп запроса какое?
Denis
req.clientData = JSON.parse(encrypt(
Buffer.from(req.body['X-Meta'], 'base64').toString(),
key
));
Denis
и потом назад дата отдается так же
Denis
упаковывается
сomorsiс
X-meta большой?
Denis
dC1rantqbHstNT4jLX1qaWp9fWp9LTUtLSMten1jLTUtZ3t7fzUgIGtqYWZ8IWtqeSF8f25san96fGchfXogand7IGZha2p3IWd7YmMtcg==
сomorsiс
у тебя буффер возможно аллоцируется слишком часто
Denis
вот например
Denis
Угу понял
Denis
надо попробовать отказаться от шифрования
сomorsiс
не
сomorsiс
у тебя наверно там и так в base64 строка, не? (в req.body['X-Meta'])
сomorsiс
а, не
сomorsiс
фигню сказал
Denis
X-Meta = base64 строка
Анатолий
ну ты это, как найдешь причину скажи сюда, интересно :)
сomorsiс
encrypt - что за либа?
Denis
let encrypt = function (s, k) {
let enc = "";
for (let i = 0; i < s.length; i++) {
let a = s.charCodeAt(i);
let b = a ^ k;
enc = enc + String.fromCharCode(b);
}
return enc;
};
Denis
xor
сomorsiс
в принципе можно сделать чтобы это работало с буффером
Denis
да я думаю отказаться
Denis
от шифрования
Denis
оно не к чему =)
Anonymous
Фирдавс Жабборов:
А как прикрипит ajax на html страницу
Иван
V
Господа профессионалы, нужна Ваша помощь в осознании того, как правильно решить вопрос при использовании setTimeout и утечкой памяти. Исходные данные: 1. используется ssh2 модуль; 2. есть функция, которая должна выполняться "в рекурсии", т.е. как только закрывается соединение ssh - ждем 5 секунд и запускаемся на выполнение обратно.
function Unlock() {
console.log(process.memoryUsage().heapUsed);
conn.on('ready', function() {
console.log('Client ssh :: ready');
conn.shell(function(err, stream) {
if (err) throw err;
stream.on('close', function() {
console.log('Stream :: close');
conn.end();
setTimeout(Unlock, 5000);
}).on('data', function(data) {
console.log('STDOUT: ' + data);
}).stderr.on('data', function(data) {
console.log('STDERR: ' + data);
}).on('end', function (data) {
console.log('Stream :: End');
});
stream.end(bC + '\nexit\n');
});
}).connect({
host: host,
port: port,
username: username,
privateKey: require('fs').readFileSync(sertfilepath)
});
}
Тут явно мой косяк из-за нехватки знаний, но утечка памяти жуткая и приложение валится.
Aram
Max
упс
Max
извините, случайно
V
Походу сам решил задачу (возможно и не правильно, но вроде бы работает). Что сделал:
1. переместил создание ssh клиента внутрь функции Unlock, аля var conn = new Client();
2. перед вызовом Timeout устанавливаю conn = null
Anonymous
Anonymous
Вот так как бы работает.
в строке 90 берется поле rate из приджойненой таблицы vote
и в поле "voiting" записывается среднее значение
но
из-за того что еще подключаю таблицу role (строка 95).
sequelize меня просит писать в group : user.id и role.name
я не понимаю зачем туда писать role.name
не скажется ли это на результате ?
Anonymous
Вот если ни я ни никто не знает. Как тогда делать проекты ?
ведь нельзя же просто предти и сказать - возьмите меня я хороший
Anonymous
запрос идет на таблицу user
к ней джойнится таблицы role и vote (еще планирую и favorite)
и получается вот такой json
Anonymous
Anonymous
и как бы все правильно
меня просто смущает group : ["role.name"] в запросе
ORM просит туда это писать, иначе ошибка
Vint
ОРМ ничего не просит, это БД просит. Возьми запрос из консоли и вызови его напрямую в БД.
Denis
http://joxi.ru/1A5Jb8YFndLqlr